作者ahlfsri (40+大叔)
看板Office
标题[算表] EXCEL VBA 将网址修改成有变数
时间Mon Jan 6 12:52:14 2020
软体: EXCEL VBA
版本: office 365
请问我要将
https://goodinfo.tw/StockInfo/EquityDistributionClassHis.asp?STOCK_ID=3049中的3049改为sheet(Company)中的储存格B2,
试了""
https://goodinfo.tw/StockInfo/EquityDistributionClassHis.asp?STOCK_ID="" &
Sheets("Company").Range("B2").Value,VBA说语法错误,请问版上高手是否能帮忙解惑?
Application.CutCopyMode = False
ActiveWorkbook.Queries.Add Name:="Table 3", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " 来源 =
Web.Page(Web.Contents(""
https://goodinfo.tw/StockInfo/EquityDistributionClassHis.asp?STOCK_ID=3049"")),"
& Chr(13) & "" & Chr(10) & " Data3 = 来源{3}[Data]," & Chr(13) & "" &
Chr(10) & " 已变更类型 = Table.TransformColumnTypes(Data3,{{""周别"", type
text}, {""统计 日期"", type date}, {""当月股价 收盘"", type number}, {""当月股
价 涨跌 (元)"", type number}, {""当月股价 涨跌 (%)"", type number}, {""各持股
等级股东之持股比例(%) 10张 以下"", type number" & _
"}, {""各持股等级股东之持股比例(%) 10至 50张"", type number}, {""各持
股等级股东之持股比例(%) 50至 100张"", type number}, {""各持股等级股东之持股比
例(%) 100至 200张"", type number}, {""各持股等级股东之持股比例(%) 200至 400张
"", type number}, {""各持股等级股东之持股比例(%) 400至 800张"", type number},
{""各持股等级股东之持股比例(%) 800至 1千张"", type number}, {""各持股等级股东
之持股比例(%) 超过 1千张"", type number}})" & Chr(13) & "" & Chr(10) & "in" &
Chr(13) & "" & Chr(10) & " 已变更类型" & _
""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data
Source=$Workbook$;Location=""Table 3"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Table 3]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_3"
.Refresh BackgroundQuery:=False
End With
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.13.55 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1578286337.A.AF3.html
1F:→ soyoso: "https//....STOCK_ID" & sheets(..).range("b2").value 01/06 12:53
2F:→ soyoso: 字串连接上,以"字串" & 储存格值 的方式,改左右各一个双 01/06 12:58
3F:→ soyoso: 引号 01/06 12:58
4F:→ soyoso: 如用於内文巨集formula的字串的话 01/06 13:38
6F:→ ahlfsri: 感谢soyoso,终於可用了 01/06 13:46
7F:→ ahlfsri: 不好意思 我在执行上遇到错误 "名为"Table 3"的查询已存 01/07 00:03
8F:→ ahlfsri: 在" 01/07 00:03
9F:→ ahlfsri: 我只要更新 不要新增,请问有解法吗? 01/07 00:04
10F:→ soyoso: 更新方面,activeworkbook.queries(...).formula 01/07 07:35
11F:→ soyoso: 如出现...范围重叠的错误讯息的话先range.clear再 01/07 07:57
12F:→ soyoso: listobjects.add 01/07 07:57
13F:→ ahlfsri: 更新方面,activeworkbook.queries(...).formula, 对不起 01/07 08:36
14F:→ ahlfsri: ,我太菜了,有点试不出来,这一句要怎麽用呢? 01/07 08:36
15F:→ soyoso: ...formula = 要调整的字串 01/07 08:39
16F:→ soyoso: 字串为let起至最後的已变更类型 01/07 08:40