没有在Excel宏中看到变量

时间:2013-01-10 17:53:39

标签: excel vba variables scope

我已经搜索了一些问题并找到了一些非常接近的问题,但我仍然做错了什么。我想在以下代码中使用变量作为工作表名称:

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,如其他帖子所示,但没有快乐。

任何建议都将不胜感激。

卡特

2 个答案:

答案 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