方法’Select’作用于对象’Range’时失败的解决方法

2016-03-21 23:26 阅读 2,204 次 评论关闭

Excel VBA功能需求:

获取工资管理系统工作薄中工人信息第r行第5列的数据,然后在人事动态登记表工作薄的12月工作表中进行查找,并返回所在的行,然后获取人事动态登记表工作薄的12月工作表中相关数据,返回值。将返回值录入工资管理系统工作薄的工人信息工作表当中。

Excel VBA代码详情:

Private Sub CommandButton1_Click()
Dim r As Integer, x As String, xr As Integer, y As String

r = 2

Do While r < 84
Workbooks("工资管理系统.xls").Sheets("工人信息").Select

x = Workbooks("工资管理系统.xls").Sheets("工人信息").Cells(r, 5).Value
Workbooks("人事动态登记表.xlsx").Sheets("12月").Select
Sheets("12月").Cells(2, 4).Select
Set C = Range("A:F").Find(x, After:=Selection, LookIn:=-4176, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, MatchByte:=True, SearchFormat:=True)
If Not C Is Nothing Then
C.Select
xr = Selection.Row
End If
y = Workbooks("人事动态登记表.xlsx").Sheets("12月").Cells(xr, 3).Value

Workbooks("工资管理系统.xls").Sheets("工人信息").Select

Workbooks("工资管理系统.xls").Sheets("工人信息").Cells(r, 2).Value = y
r = r + 1
Loop

End Sub

运行此段VBA代码会出现“方法'Select'作用于对象'Range'时失败”的错误,百度了一下,未能查找出原因。

根据错误提示,是Range对象作用失败,为什么会作用失败呢?原因是我的代码当中出现了2个工作薄,并且有很多个工作表。VBA程序一时间无法继承上一工作表,因此出现了“方法'Select'作用于对象'Range'时失败”的错误。

解决“方法'Select'作用于对象'Range'时失败”错误的方法很简单,强调一下Range对象所在的工作表即可。

修改代码如下:

Private Sub CommandButton1_Click()
Dim r As Integer, x As String, xr As Integer, y As String

r = 2

Do While r < 84
Workbooks("工资管理系统.xls").Sheets("工人信息").Select

x = Workbooks("工资管理系统.xls").Sheets("工人信息").Cells(r, 5).Value
Workbooks("人事动态登记表.xlsx").Sheets("12月").Select
Sheets("12月").Cells(2, 4).Select
Set C =Sheets("12月").Range("A:F").Find(x, After:=Selection, LookIn:=-4176, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, MatchByte:=True, SearchFormat:=True)
If Not C Is Nothing Then
C.Select
xr = Selection.Row
End If
y = Workbooks("人事动态登记表.xlsx").Sheets("12月").Cells(xr, 3).Value

Workbooks("工资管理系统.xls").Sheets("工人信息").Select

Workbooks("工资管理系统.xls").Sheets("工人信息").Cells(r, 2).Value = y
r = r + 1
Loop

End Sub

再次运行Excel VBA代码,就没再出现:“方法'Select'作用于对象'Range'时失败”的错误了!

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:方法’Select’作用于对象’Range’时失败的解决方法 | 猎微网

评论已关闭!