我在尝试使用变量作为工作表名称时遇到RunTime 13错误,如下所示:
Sub inputdata()
Set asheet1 = ThisWorkbook.Worksheets("input").Range("D12")
Set rangeDate = ThisWorkbook.Worksheets("input").Range("inputdate")
Range("F12:M12").Copy
Sheets(asheet1).Select
表格Sheets(asheet1)上的错误。选择
任何帮助都会非常感谢!
答案 0 :(得分:4)
asheet1不是字符串,而是将范围对象指向它。您应该将asheet1声明为字符串,并将此行更改为
Dim asheet1 as string
asheet1 = ThisWorkbook.Worksheets("input").Range("D12").Value
这应该会有效!
修改
从字符串var。
中删除了Set关键字答案 1 :(得分:2)
Option Explicit
Sub inputdata()
dim inputSheet as WorkSheet
dim aCellOnInputSheet as Range
dim inputDateCell as Range
dim userSheetName as String
Set inputSheet = ThisWorkbook.Worksheets("input")
Set aCellOnInputSheet = inputSheet.Range("D12")
userSheetName = aCellOnInputSheet.Value
Set inputDateCell = inputSheet.Range("inputdate")
Range("F12:M12").Copy
Sheets(userSheetName).Select
End Sub
编辑:几点
1)Option Explicit
是必须的
2)定义变量并适当地命名。即定义变量,该变量引用名称范围而不是aSheet
的单元格/范围 - 它会使读者感到困惑