Excel 无法识别下标超出范围错误的起始位置

Excel 无法识别下标超出范围错误的起始位置,excel,vba,select,range,Excel,Vba,Select,Range,每当尝试使用带有参数的子例程选择变量范围时,我也会收到错误9下标超出范围。如果删除ThisWorkBook.WorksheetsSheets1,则会收到一个全局错误 我尝试过使用不同的例程,比如Cellsx、y Sub Trail() Call SelectRow(2) End Sub Sub SelectRow(i As String) Dim theAddressA As String Dim theAddressL As String theAddr

每当尝试使用带有参数的子例程选择变量范围时,我也会收到错误9下标超出范围。如果删除ThisWorkBook.WorksheetsSheets1,则会收到一个全局错误

我尝试过使用不同的例程,比如Cellsx、y

Sub Trail()

    Call SelectRow(2)

End Sub

Sub SelectRow(i As String)

    Dim theAddressA As String
    Dim theAddressL As String
    theAddressA = "A" & i
    theAddressL = "L" & i
    MsgBox (theAddressA) 'Prints "A2".
    MsgBox (theAddressL) 'Prints "L2".    
    ThisWorkbook.Worksheets("Sheet1").Range("theAddressA:theAddressL").Select

End Sub
我希望能够根据变量输入选择行,如带有参数的子例程所示。最终,一旦我能做到这一点,我想将单独的行与另一个表进行比较,然后确定差异和相似之处。

不要将变量括在引号中。。。它们不是文本字符串。相反,像这样连接它们

ThisWorkbook.Worksheets("Sheet1").Range(theAddressA & ":" & theAddressL).Select

我错误地引用了工作表的名称,我认为图像中显示的名称Sheet1将是VBA引用的名称。但是,应该引用已分配的实际名称。谢谢大家


谢谢你,布拉克斯。然而,我已经尝试过了,但是我仍然得到了相同的9下标错误。MsgBox theaddress&:&theaddress给了你什么?是否有一张名为Sheet1或Sheet1的工作表?'code'MsgBox theaddress a&:&theaddress l给出A2:L2。该表被称为Sheet1,更具体地说是受亚太卡车流行音乐的影响,将其从Sheet1更改为此解决了我的问题!谢谢你,布拉克斯!通常你不需要选择,也许应该避免。有关详细信息,请参阅。工作簿中是否有名为Sheet1的工作表?此外-工作表必须处于活动状态才能选择其上的单元格-但如前所述,您可能根本不需要选择。它被专门称为受影响的亚太卡车Pop,我认为工作表名称应为Sheet1,如属性中所示,而我在excel工作簿中指定的名称将不会被引用。但是,将其更改为我指定的名称解决了我的问题。谢谢Ben,我也会查看链接以避免使用Select。非常感谢。这是代号。它与实际图纸名称不同。要使用它,请执行Sheet1.RangetheAddressA&:&theAddressL.Select。但是没问题,很高兴编码。如果您想按索引处理工作表,您可以这样做:ThisWorkbook.Worksheets1Name是VBA对象的名称,只能在VBA编辑器中更改。名称是显示在图纸选项卡上的标签。而不是ThisWorkbook.Worksheets影响亚太地区卡车Pop.Range。。。您可以使用Sheet1.Range。。。。