我已经搜索了一些问题并找到了一些非常接近的问题,但我仍然做错了什么。我想在以下代码中使用变量作为工作表名称:
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,如其他帖子所示,但没有快乐。
任何建议都将不胜感激。
卡特
答案 0 :(得分:0)
尝试使用工作表(wrkPro).Cells而不是Sheets(wrkPro).Cells - Sheets()按索引引用工作表,即整数,例如表格(1)。细胞等 工作表(wrkPro).Cells字符串变量作为名称应该是可以接受的。
答案 1 :(得分:0)
更改此行:
Sheets("Recap").Range("A2, B5000").ClearContents
到此:
Sheets("Recap").Range("A2:B5000").ClearContents