返回列表 上一主題 發帖

如何利用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

本帖最後由 stillfish00 於 2016-1-15 14:32 編輯

回復 3# RCRG
如果只是要連線其他EXCEL內的Table
可用 資料>(取得外部資料)從其他來源>從Microsoft Query>
Excel files
建立該Table的連線

https://support.office.com/zh-TW ... 3-9c38-4c62f252da2e
建議你多看看OFFICE的說明

但是這跟你2#說的複製貼上是兩回事
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

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

本帖最後由 ML089 於 2016-1-23 23:51 編輯

回復 6# RCRG
  1. 'VBA程式放在 使用檔.XLS中 ThisWorkbook
  2. Private Sub Workbook_Open()
  3.     xF = "'C:\Documents and Settings\桌面\利用VBA更新連結\修改資料夾\[修改檔.xls]工作表A'!R1C1:R999C7"
  4.     Workbooks("使用檔.xls").Worksheets("工作表a").Range("A1:G999").FormulaArray = "=if(" & xF & "="""",""""," & xF & ")"
  5. End Sub
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 7# ML089


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

TOP

回復 7# ML089


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

TOP

回復 9# RCRG

R1C1:R999C7

R1:第1列
C1:第1欄
等於 A1

R999:第999列
C7:第7欄
等於 G999

U1:CC300 = R1C21:R300C81
COLUMN(U1)=21
COLUMN(CC300)=81
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

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