繁体   English   中英

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

[英]VBA Runtime error while assigning variable to new worksheet name

从要创建的单元格A7(股票名称)中创建新工作表,并将来自Google的数据粘贴到该新创建的工作表中。 如果直接使用DLF类的值,则在My Code中代替x可以使用。

但是,当我分配变量时,在Sheets.Add.Name = x出现Runtime error 1004 ,在Set DataSheet = Sheets(x) Runtime error 9

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"

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM