標題:
產生多餘的名稱
[打印本頁]
作者:
ddhh4053
時間:
2013-1-15 02:01
標題:
產生多餘的名稱
請問各位大大
我執行底下這兩段程式,會定義多餘的名稱"2012_F3_1_10_1101.php?STK_NO=1101&myear=2012",且一直重覆定義,要如何讓他不用自動定義名稱
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.twse.com.tw/ch/trading/exchange/FMSRFK/genpage/Report" & year1 & "01/" & year1 & "_F3_1_10_" & stock_id & ".php?STK_NO=" & stock_id & "&myear=" & year1 & "" _
, Destination:=Range("A6"))
.Name = "2012_F3_1_10_1101.php?STK_NO=1101&myear=2012"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "8"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
..........................
...........................
..............................
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = [B2].Address Then
With Sheets("test")
If WorksheetFunction.CountIf(Sheets("Sheet3").Range("A2:A1425"), .[B2]) = 1 Then
Call test
Else
Call test3
End If
End With
End If
Application.EnableEvents = True
End Sub
謝謝幫忙
作者:
Hsieh
時間:
2013-1-15 09:23
回復
1#
ddhh4053
WEB查詢的定義名稱是必需的
若沒有給它定義名稱,則無法做資料更新,也就是EXCEL將會移除此查詢
同理,若你只需查詢一次並不需要日後作資料更新
那麼在With ActiveSheet.QueryTables.Add的區段敘述結束前加入.Delete
將查詢刪除即可
作者:
ddhh4053
時間:
2013-1-15 10:26
請問 我試著將.Delete加在.Refresh BackgroundQuery:=False前後面:
.Delete
.Refresh BackgroundQuery:=False
與
.Refresh BackgroundQuery:=False
.Delete
結果加在前面出現此處須要物件
加在後面沒有效果,
有沒有其他方法
謝謝指導
作者:
Hsieh
時間:
2013-1-15 11:26
回復
3#
ddhh4053
.Refresh BackgroundQuery:=False
.Delete
End With
這樣應該就在名稱內沒有新增一個名稱了
作者:
ddhh4053
時間:
2013-1-15 13:28
我試過還是會一直累積參照的名稱 看來只能新增temp工作表
作者:
Hsieh
時間:
2013-1-15 13:55
回復
5#
ddhh4053
[attach]13944[/attach]
作者:
GBKEE
時間:
2013-1-15 15:54
回復
5#
ddhh4053
先執行Ex
Option Explicit
Sub Ex()
Dim Q As QueryTable
With ActiveSheet
For Each Q In .QueryTables
Q.Delete
Next
End With
End Sub
複製代碼
然後在 ActiveSheet.QueryTables.Add 中 加上.Delete 看看
.Refresh BackgroundQuery:=False
.Delete
End With
複製代碼
作者:
ddhh4053
時間:
2013-1-15 18:37
謝謝兩位大大的幫忙
我也很納悶為什麼我加了那一行卻不行
.Refresh BackgroundQuery:=False
.Delete
End With
而你的確可以 完全一樣的東西
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)