質問を検索して、非常に近いものを見つけましたが、まだ何か間違っています。次のコードで、ワークシート名に変数を使用したいと考えています。
Option Explicit
Dim wrkPro As String
Dim wrkFFIS As String
Sub MainLoop()
'*************************************************************************************************************************
'*
'*************************************************************************************************************************
Dim FFISno As Range '* Admustments
Dim ProTracksno As Range '* Contracts
Dim FFISnx As String '* Corrected Contract Number
Dim PTdte As Date
Dim FFISdte As Date
Dim orow As Integer
Dim frow As Integer
Dim prow As Integer
Dim rngRange As Range
orow = 2 '* Output Row
frow = 2 '* FFIS Row
prow = 7 '* ProTracks Row
'* Set Worksheet for input ...
wrkPro = CStr(Sheets("SysCtrl").Cells(4, 2).Value) & "ProTracts"
wrkFFIS = CStr(Sheets("SysCtrl").Cells(4, 2).Value) & "FFIS"
'* Clear the Recap Sheet
Sheets("Recap").Range("A2, B5000").ClearContents
'* Sheets("Recap").Rows(CStr(orow) & ":" & CStr(Worksheets("Recap").Cells(Rows.Count, 1).End(xlUp).Row)).ClearContents
'* Sheets("Recap").Cells(1, 1).Select
BeginLoop:
'* Do until EOF on ProTracks Table
Do While Sheets(wrkPro).Cells(prow, 7) <> "" And Sheets(wrkFFIS).Cells(frow, 4) <> ""
実行すると、添え字が範囲外のエラーになります。確認したところ、変数には正しい値が含まれていますが、Do While で文字列として使用されていません。
文字列の前後に Char(34) を追加して、他の投稿で提案されているように Dim を Public に変更しようとしましたが、喜びはありませんでした。
任意の提案をいただければ幸いです。
カーター