将变量分配给新工作表名称时出现VBA运行时错误

时间:2015-08-09 08:45:44

标签: vba excel-vba excel

从单元格A7(股票名称)新页面想要创建,谷歌的数据将粘贴在新创建的工作表中。如果直接使用x之类的值,则在我的代码而不是DLF中,它可以正常工作。

但是,当我分配变量时,我Runtime error 1004中的Sheets.Add.Name = xRuntime error 9中的Set DataSheet = Sheets(x)。{/ p>

Dim ParameterSheet As Worksheet
Dim DataSheet As Worksheet
Dim ticker As String
Dim exchange As String
Dim interval As Integer
Dim numPastTradingDays As Integer
Dim qurl As String
Dim x As String
Dim y As Integer
Dim WS As Worksheet
y = 7
x = Range("A" & y)

Set WS = Sheets.Add
Sheets.Add.Name = x

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual

Set ParameterSheet = Sheets("Parameters")
Set DataSheet = Sheets(x)

DataSheet.Cells.Clear
ticker = ParameterSheet.Range("A7").Value
exchange = ParameterSheet.Range("B7").Value
interval = ParameterSheet.Range("C7").Value
numPastTradingDays = ParameterSheet.Range("D7").Value

qurl = "http://www.google.com/finance/getprices?" & _
       "q=" & ticker & _
       "&i=" & interval & _
       "&p=" & numPastTradingDays & "d" & _
       "&f=d,o,h,l,c,v"

2 个答案:

答案 0 :(得分:1)

虽然Worksheet.Name property是工作表和工作表的属性,但它不是Sheets.Add Method中的参数。

'method 1
with Sheets.Add
   .Name = x
end with

'method 2
sheets.Add After:=sheets(sheets.count)
sheets(sheets.count).name = x

这些是添加和命名工作表的两种方法。还有其他一些。

答案 1 :(得分:0)

替换      Sheets.Add.Name = x 同      ws.name = x

(您必须参考ws对象名称属性)