使用列号选择范围

时间:2018-05-24 10:18:43

标签: excel-vba vba excel

我得到"应用程序定义或对象定义错误"在范围内传递参数时。

如果我使用以下编码,它运行正常,没有任何错误。

With Sheets("BBG").Range("A1:AD1")

但我用下面的代码运行它,它反映了上面的错误。

With Sheets("BBG").Range("A1:" & LastColumn & 1)

完成编码

Dim LastColumn As Long
With Sheets("BBG")
LastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column

Set Rng1 = .Find(What:=chck1, _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
                        MatchCase:=False)
If Not Rng1 Is Nothing Then
Sheets(2).Activate
ThisWorkbook.Sheets(2).Cells(i, "N").Value = Rng1.Address
cl = Rng1.Column
Else
End If
End With

1 个答案:

答案 0 :(得分:1)

你可以选择下面的范围,我不建议使用.Select或Activate方法,因为它通常不是必需的,但由于我不确定你想要对范围做什么,我举例说明如何选择它:

Sub foo()
With Sheets("BBG")
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    .Range(.Cells(1, 1), .Cells(1, LastCol)).Select
    'Cells(1,1) = Range("A1")
    'Cells(1, LastCol) = Last Column on Row 1
End With
End Sub