使用variables作为工作表名称

尝试按以下方式使用sheetname的variables时,出现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 

这是错误的行表(asheet1)。select

任何帮助将非常感谢!

asheet1不是一个string,你正在为它指定一个范围对象。 您应该将asheet1声明为string,并将此行更改为

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

这应该使它工作!

编辑

从stringvar中删除Set关键字。

 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)定义variables并适当命名。 即定义variables是指一个单元格/范围与名称范围,而不是aSheet – 它迷惑了读者