1

尝试将变量用于工作表名称时,我收到 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).Select 行上出错

任何帮助都会非常感谢!

4

2 回答 2

4

asheet1 不是字符串,您正在为它分配一个范围对象。您应该将 asheet1 声明为字符串并将此行更改为

Dim asheet1 as string
asheet1 = ThisWorkbook.Worksheets("input").Range("D12").Value

那应该使它起作用!

编辑

从字符串 var 中删除了 Set 关键字。

于 2013-04-17T13:43:00.720 回答
1
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- 它使读者感到困惑

于 2013-04-17T13:42:23.627 回答