私はExcelでVBAを使用してテストレポートデータベースを作成しています。ドキュメント番号を探してセルを参照すると、エラーが発生しますscript out of range (Error 9)
。
私が使用しているコードは次のとおりです。
LookUpRowCounter = HeaderRow + 1
Do Until Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = ""
If Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = DocumentNumber Then
Exit Do
End If
LookUpRowCounter = LookUpRowCounter + 1
Loop
エラーは、最初のレコードのIfステートメントで発生します。ここで、カウンターは5です。データシート「リスト」には、5行目から15行目までの10個のレコードがあります。
助けてくれてありがとう
編集
文書番号の形式は0000AA000で、数字と大文字が含まれています。
Public Sub Archive()
'On Error GoTo Err
Dim DocumentNumber As String
Dim ProjectNumber As Single
Dim DBName As String
Dim DBLocation As String
Dim LookUpRowCounter As Single
Application.ScreenUpdating = False
DBName = "Attribute DataSheet.xls"
DBLocation = "J:\home\PEJ2WO\Database For Martin\"
DocumentNumber = ThisWorkbook.Sheets("Detail and Summary").Range("infDocumentNumber").Text
Workbooks.Open Filename:=DBLocation & DBName
If Not DocumentNumber = "" Then
'Document number present
LookUpRowCounter = HeaderRow + 1
Do Until Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = DocumentNumber
If Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = "" Then Exit Do
LookUpRowCounter = LookUpRowCounter + 1
Loop
Else
'create new document number
DocumentNumber = GetDocumentNumbers(DocumentNumber)
ThisWorkbook.Sheets("Detail and Summary").Unprotect (Password)
ThisWorkbook.Sheets("Detail and Summary").Range("infDocumentNumber").Value = DocumentNumber
'ThisWorkbook.Sheets("Detail And Summary").Range("infProjectNumber").Value = ProjectNumber
ThisWorkbook.Sheets("Detail And Summary").Protect (Password)
LookUpRowCounter = HeaderRow + 1
Do Until Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = ""
If Workbooks(DBName).Worksheets("List").Cells(LookUpRowCounter, 1).Text = DocumentNumber Then
Exit Do
End If
LookUpRowCounter = LookUpRowCounter + 1
Loop
End If
この時点以降、要約シートに値を書き込むためのコードがありますが、これは長く巻き込まれているため、関連付ける必要はありません。