我想抓住一个工作表中的某一列,并且(最终..没有编写代码)将它复制到另一个工作簿中的另一个工作表中。我得到一个运行时错误91,当我试图找到办法解决它,我会得到一个运行时错误1004使用特定工作表并选择范围;运行时错误91
Sub User_Rolee()
Dim UserRoleWkb As Workbook, ConfigWkb As Workbook, UserRoleWkst As Worksheet, ConfigWkst As Worksheet
Set UserRoleWkb = Workbooks.Open("C:\Users\clara\Desktop\S_User_Role_Map_TEMPLATE_V2_BLANK.xlsx")
Set ConfigWkb = ActiveWorkbook
'Set ConfigWkb = Workbooks.Open("C:\Users\clara\Desktop\Configuration Workbook - Paramaribo.xlsm")
Set UserRoleWkst = UserRoleWkb.Sheets("Users")
Set ConfigWkst = ConfigWkb.ActiveSheet
Dim rng, rnga As Range
With ConfigWkst
Set rng = .Columns(2).Find(What:="Procurement Agent")
Set rnga = .rng.Offset(1) 'runtime error 91
Set rngar = .Range(rnga, rnga.End(xlDown)).Select
End With
End Sub
在调用'.Offset'之前,您需要检查'Is Nothing'的查找结果。 – Comintern
将“Set ConfigWkb = ActiveWorkbook”更改为“Set ConfigWkb = ThisWorkbook”。在打开* THAT *活动工作簿的行之前打开UserRoleWkb。 *编辑*为良好的做法也定义为范围,逗号分隔昏暗不要继承你最后一个状态。 – Zerk
使用'Set ConfigWkst = ConfigWkb.ActiveSheet'风险太大且不可靠,您最好使用'Set ConfigWkst = ConfigWkb.Worksheets(“YourSheetName”)' –