返回列表 上一主題 發帖

如何利用VBA來達到 "連結" 效果?

如何利用VBA來達到 "連結" 效果?

問題
如何利用VBA來達到 "連結" 效果?

詳細問題內容
使用檔的工作表a 和 修改檔的工作表A,內容是完全一模一樣,
因為是利用='C:\Documents and Settings\桌面\利用VBA更新連結\修改資料夾\[修改檔.xls]工作表A'!A1
的公式來連結兩個不同路徑的活頁簿工作表內容,
不知有沒辦法改利用VBA來達到這種效果,(VBA裡面請幫我註明修改路徑的地方),
我想要打開活頁簿就會自動更新修改檔的連結內容而傳到使用檔;
另外如果沒有內容,可以不要顯示0而是維持空白嗎?

另外如果像是工作表B & b,有限制範圍的讀取來源,VBA又該如何寫呢?

以上問題,請大大指教幫解了!謝謝!

下載說明檔
如何利用VBA更新連結.rar (9.36 KB)

問題
如何利用VBA來達到 "連結" 效果?

詳細問題內容
使用檔的工作表a 和 修改檔的工作表A,內容是完全 ...
RCRG 發表於 2016-1-11 13:51



    簡單來講就是,是否能利用VBA來複製 "另一個 活頁簿的工作表" 內容,而且是每開啟活頁簿就執行一次複製工作表的動作。

TOP

回復 1# RCRG


    嗚嗚...! 難道只能利用 工作表a'A1=工作表A'!A1 的公式手法來連結兩工作表的內容嗎? 還是有甚麼地方是我敘述不清的,求VBA高手解惑!謝謝!QQ

TOP

回復 4# stillfish00


    我的用意只是要能 "透過活頁簿A去修改活頁簿B",因為活頁簿B是寫給使用者在用的,所以他們可能會複製去使用而且放在任何路徑,不過沒關係,我只要在活頁簿B寫入VBA(或者像目前用連結更新的方式),就能隨時透過活頁簿A間接達到修改活頁簿B的需求;
也因為活頁簿A和活頁簿B兩者內容會一模一樣,所以我才會用到 "複製" 字眼,不太會形容與表達,歹勢!XD
我只是在想,除了用更新連結方式,是否能透過VBA,或者有更聰明的辦法呢? 因為感覺更新連結資料量會比較大,畢竟可能是幾千列的內容。

TOP

回復 5# RCRG


    Microsoft Query資料連結的方式自己弄了半天還是不會用,都會出現 "此資料來源中並未存在可使用的表格" ,所以這方面就放棄了...XD
硬是給他用 工作表a'A1=工作表A'!A1 的公式來連結兩個活頁簿的資料,實測結果就是開檔慢、存檔也慢,每次時間就是3、40秒起跳;
試著自己在"使用檔"錄巨集,但是"修改檔"一關閉檔案或移動路徑,巨集就完全沒用了!...求助無門了....QQ

Sub 巨集1()
'
' 巨集1 巨集
'

'
    Windows("修改檔.xls").Activate
    Cells.Select
    Selection.Copy
    Windows("使用檔.xls").Activate
    Cells.Select
    ActiveSheet.Paste
End Sub

TOP

回復 7# ML089


    謝謝ML089大大的解答,我要的形式就是這樣,等等再測試看透過您的VBA和我本來的直接公式連結,程式跑起來會不會還是很花時間;
對了!所以這是開檔複製另一個活頁簿的"數值"吧,因為字體(儲存格)顏色、字體大小、格式、甚至註解好像都無法複製!

TOP

回復 7# ML089


    請教一下M大,我把您的範圍"A1:G999"改成其他範圍(如:"A1:BB500" 或 "U1:CC300"..等),好像就會出現錯誤,
自己研究了一下好像是上面這個R1C1:R999C7也要跟著修改沒錯吧,可是我不懂R1C1:R999C7是什麼意思,不知能否說明一下;
或者除了R1C1:R999C7,還有甚麼地方也需一起修改呢?

TOP

回復 10# ML089


    為什麼我範圍自己改成如下,VBA還是會跳出問題視窗呢

'VBA程式放在 使用檔.XLS中 ThisWorkbook
Private Sub Workbook_Open()
    xF = "'C:\Documents and Settings\桌面\利用VBA更新連結\修改資料夾\[修改檔.xls]工作表A'!R1C1:R500C81"
    Workbooks("使用檔.xls").Worksheets("工作表a").Range("A1:CC500").FormulaArray = "=if(" & xF & "="""",""""," & xF & ")"
End Sub

TOP

回復  ML089


    為什麼我範圍自己改成如下,VBA還是會跳出問題視窗呢

'VBA程式放在 使用檔.XLS中 ...
RCRG 發表於 2016-1-25 12:22


回復 13# ML089

我大概找到問題所在了,好像是要把產生的陣列公式整個移除,才會正常;
也就是說使用檔裡,不能有跟上一次不同連結的陣列公式,有的話需全部移除,讓他從空白頁中再跑新的連結出來,才不致發生異常。
以上是我使用M大版的心得,也非常謝謝您第一時間為我解答。

TOP

回復 14# 准提部林

所以准大的VBA是套用 複製貼上 的方法囉?

那我想了解詳細的VBA內容是 1. 複製來源直接貼上覆蓋目標
                                         還是    2. 複製來源,清除目標舊內容,再貼上目標

是哪種模式呢? 因為如果是第1個模式,那目標本來有VBA按鈕,是不是就無法覆蓋VBA按鈕了
因為准大的vba如果來源有vba按鈕好像也會一併複製,所以不知道會不會每開檔一次就複製貼上越來越多按鈕過去

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題