Vba 使用变量作为工作表名称
我在尝试为sheetname使用变量时遇到运行时13错误,如下所示:Vba 使用变量作为工作表名称,vba,excel,Vba,Excel,我在尝试为sheetname使用变量时遇到运行时13错误,如下所示: Sub inputdata() Set asheet1 = ThisWorkbook.Worksheets("input").Range("D12") Set rangeDate = ThisWorkbook.Worksheets("input").Range("inputdate") Range("F12:M12").Copy Sheets(asheet1).Select 线路图Sasheet1上出现错误。选择 任何帮
Sub inputdata()
Set asheet1 = ThisWorkbook.Worksheets("input").Range("D12")
Set rangeDate = ThisWorkbook.Worksheets("input").Range("inputdate")
Range("F12:M12").Copy
Sheets(asheet1).Select
线路图Sasheet1上出现错误。选择
任何帮助都很好,谢谢
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选项显式是必须的。
2定义变量并适当命名。i、 e.定义一个变量,该变量引用一个名为Range而不是aSheet的单元格/区域-这会使读取器感到困惑
编辑:几点
1选项显式是必须的。
2定义变量并适当命名。i、 e.定义一个变量,该变量引用一个名为Range而不是aSheet的单元格/区域-这会使读取器感到困惑。asheet1不是字符串,您正在向它指定一个范围对象。您应该将asheet1声明为string,并将此行更改为
Dim asheet1 as string
asheet1 = ThisWorkbook.Worksheets("input").Range("D12").Value
这应该会成功的
编辑
从字符串变量中删除了Set关键字。asheet1不是字符串,您正在为其指定一个范围对象。您应该将asheet1声明为string,并将此行更改为
Dim asheet1 as string
asheet1 = ThisWorkbook.Worksheets("input").Range("D12").Value
这应该会成功的
编辑
从字符串变量中删除Set关键字。这不是他要求的。这不是他要求的。谢谢你的回答,不幸的是,它在Set asheet1=@subtilty上给出了“object required”错误。很抱歉,我应该删除Set关键字,因为asheet1是字符串,不再是对象。谢谢你的帮助,这很有帮助。我建议使用Value2,除非明确需要单元格格式…@K_B:Value2不是字符串内容所必需的。尝试在使用货币数据类型格式化的单元格上使用Value vs Value2。感谢您的回答,不幸的是,它在Set asheet1=@subtilty上给出了“object required”错误。很抱歉,我应该删除Set关键字,因为asheet1是一个字符串,不再是对象。感谢您的帮助,这很有帮助。我建议使用Value2,除非明确需要单元格格式…@K_B:Value2不是字符串内容所必需的。尝试在使用货币数据类型格式化的单元格上使用Value vs Value2。一般提示是始终使用Option Explicit Tools>Options>Editor>Require Variable Declaration,这将强制您对所使用的所有变量和对象进行尺寸标注。如果您将asheet1标注为工作表,它将永远不允许设置为范围。一般提示是始终使用Option Explicit Tools>Options>Editor>Require Variable Declaration,这将强制您标注所有使用的变量和对象。如果将asheet1标注为工作表,则永远不允许将其设置为范围