excel – 设置变量VBA

在这里完成新手

我几天前开始做一些VBA,我有一个简单的问题,但似乎无法找到我做错了什么.

我正在尝试创建一个按钮,它将获取活动单元格的坐标,并将它们与另一个工作表进行比较,以从另一个表中检索特定值.
我将变量设置为活动单元格列和行,我想这样做,以便稍后我可以将这些位置与另一个工作表进行比较,并获取另一个工作表上指定位置的值.

到目前为止,由于我没有接受过正式培训,因此我只能在网上找到我能找到的内容.
最后的msgbox只是为了测试它是否真正获取了引用.

Sub CommandButton1_Click()
Dim Arow As Range
Dim Acol As Range
Set Arow = Worksheets("Sheet1").Range(ActiveCell.Row)
Set Acol = Worksheets("Sheet1").Range(ActiveCell.Column)
MsgBox (Arow)
End Sub

到目前为止,我有错误运行时错误’1004’应用程序定义或对象定义错误突出显示第4行.如果有人可以帮我解决这个问题或者重定向我一些帮助,我将不胜感激.

最佳答案 我认为这不会奏效,你应该放在那里

Set arow = Worksheets("Sheet1").Range(ActiveCell.Row & ":" & ActiveCell.Row)

简单地将数字放在那里是行不通的.对于专栏,你应该把它放在像C:C那样的东西上.要获得专栏信,请参阅此问题:Function to convert column number to letter?

有关Range属性的更多信息,请参阅官方文档https://msdn.microsoft.com/en-us/library/office/ff836512.aspx.

问题是,您必须提供所谓的A1引用中的地址,即“A1”,或“$A $1”或单元名称等,或者您必须提供两个Range对象,例如两个单元格工作表(“Sheet1”).范围(工作表(“Sheet1”).单元格(1,1),工作表(“Sheet1”).单元格(2,2)),定义从第一个参数的左上角开始的区域在第二个参数的右下角.

点赞