gpt4 book ai didi

vba - 在多个 Excel 工作表上运行宏

转载 作者:行者123 更新时间:2023-12-02 21:44:03 27 4
gpt4 key购买 nike

我正在寻求帮助以在多个 Excel 工作表上运行单个宏(之前有几个相关问题,但我不认为/不知道它们是否适用于我的问题)。每张纸都有不同的股票代码。我试图在每个 Excel 工作表上提取不同股票的历史股票价格。正如您从 VBA 代码中注意到的那样,每个工作表的代码都位于 K1 中。

现在,我可以使用下面的代码在多个工作表上运行相同的宏。但是,宏对所​​有工作表使用相同的代码运行。例如,第一个工作表中的股票代码是“WMT”,宏使用“WMT”而不是每个工作表的唯一股票代码来提取所有工作表上的历史股票价格。有谁知道如何使宏在每个工作表上运行,以便宏使用每个工作表上的唯一代码?

    Sub Data_Get()
'
' Data_Get Macro
'
Dim ticker As String, sday, smonth, syear, eday, emonth, eyear As Long, ws As Worksheet


ticker = Range("k1")
sday = Day(Range("k2"))
smonth = Month(Range("k2")) - 1
syear = Year(Range("k2"))
eday = Day(Range("k3"))
emonth = Month(Range("k3")) - 1
eyear = Year(Range("k3"))

'
For Each ws In Sheets
ws.Activate
Columns("A:G").ClearContents

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;http://real-chart.finance.yahoo.com/table.csv?s=" & ticker & "&d=" & emonth & "&e=" & eday & "&f=" & eyear & " &g=w&a=" & smonth & "&b=" & sday & "&c=" & syear & "&ignore=.csv" _
, Destination:=Range("$A$1"))
.Name = "Datatable"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(5, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Next ws

End Sub

最佳答案

以下是如何循环工作簿中的所有工作表并调用子项。

    Dim iIndex as integer
Dim ws As Excel.Worksheet

For iIndex = 1 To ActiveWorkbook.Worksheets.count
Set ws = Worksheets(iIndex)
ws.Activate

Data_Get

Next iIndex

关于vba - 在多个 Excel 工作表上运行宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32055165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com