使用变量作为工作表名称

时间:2013-04-17 13:38:03

标签: excel vba excel-vba

我在尝试使用变量作为工作表名称时遇到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)上的错误。选择

任何帮助都会非常感谢!

2 个答案:

答案 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的单元格/范围 - 它会使读者感到困惑