使用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
– 它迷惑了读者