- 帖子
- 1018
- 主題
- 15
- 精華
- 0
- 積分
- 1058
- 點名
- 0
- 作業系統
- win7 32bit
- 軟體版本
- Office 2016 64-bit
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 桃園
- 註冊時間
- 2012-5-9
- 最後登錄
- 2022-9-28
|
7#
發表於 2014-1-15 20:16
| 只看該作者
回復 6# icestormer
所以你資料表是有很多很多外部資料連線組成,全部都更新太慢所以是要找到特定的外部資料更新連線就好,
然後再取回買賣價到主工作表,對嗎?
修改主工作表- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Application.Intersect(Target, Range("F1:G1")) Is Nothing Then Exit Sub
- UpdateQueryTable
- UpdatePrice
- End Sub
複製代碼 原本一般模組再加上:- Sub UpdateQueryTable()
- Dim ar, rng As Range, x
- Dim sMsg As String, bNotFound As Boolean
-
- Const sMark = " - Market Browser"
- sMsg = "以下找不到 : "
-
- With Sheets("主工作表")
- ar = Application.Transpose(.Range(.Range("A2"), .Cells(.Rows.Count, "A").End(xlUp)).Value)
- End With
-
- With Sheets("資料區")
- For Each x In ar
- Set rng = .Cells.Find(x & sMark, LookIn:=xlValues, lookat:=xlWhole)
- If rng Is Nothing Then
- sMsg = sMsg & vbCrLf & x & sMark
- bNotFound = True
- Else
- rng.QueryTable.Refresh BackgroundQuery:=False
- End If
- Next
- End With
-
- If bNotFound Then MsgBox sMsg Else MsgBox "Finish"
- End Sub
複製代碼 |
|