返回列表 上一主題 發帖

兩個"獨立"運作的Excel活頁薄如何用DDE互傳資訊??

兩個"獨立"運作的Excel活頁薄如何用DDE互傳資訊??

小弟有兩個Excel 檔案必須獨立開Excel 去運作程式.....因為開單一Excel程式會出錯~
我知道一個Excel開兩個檔案可以用DDE字串打在格子裡便可互傳資料,但獨立開兩個Excel就無法傳送資料....
這種情況我是否需要用到API去連接兩本獨立的運作的活頁薄?技術上可行嗎?謝謝各位大大
ps:我不想用csv去互傳資料....要即時的

回復 1# samsung2888
請上傳檔案,否則難以理解你的真正問題。

TOP

回復 1# samsung2888
第一個Excel: ThisWorkbook的程式碼
  1. Public APP As New Application
  2. Private Sub Workbook_Open()
  3.         APP.Visible = True    '第二個Excel: 顯示
  4.         APP.Workbooks.Open ("D:\BOOK1.XLS") 第二個Excel:開啟活頁簿
  5. End Sub
複製代碼
  1. Sub Ex()
  2.     ThisWorkbook.Sheets(1).[A1] = APP.Workbooks(1).Sheets(1).[A1]
  3. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# GBKEE

GBKEE大大....你太厲害了!!!我就是要找這個方法!!這問題困擾了我很久....果然是超級版主....真的非常感恩.....謝謝!!!!:handshake

TOP

回復 3# GBKEE
GBKEE大大,你好!
按您的程序
如果BOOK1.XLS放在某個目錄下
  1. Public APP As New Application
  2. Private Sub Workbook_Open()
  3.         APP.Visible = True    '第二個Excel: 顯示
  4.         APP.Workbooks.Open "D:\programs\BOOK1.XLS" '第二個Excel:開啟活頁簿
  5. End Sub
複製代碼
結果下面執行出現錯誤訊息=「執行階段錯誤424」說明此觸需要物件。
  1. Sub Ex()
  2.     ThisWorkbook.Sheets(1).[A1] = APP.Workbooks("D:\programs\BOOK1.XLS").Sheets(1).[A1]
  3. End Sub
複製代碼
請問哪裡出錯?
人生只有三天,只有活在今天最踏實

TOP

回復 3# GBKEE
GBKEE大大,你好!
按您的程序
自己練習
Private Sub CommandButton4_Click()
    Set wb = ThisWorkbook
    Application.Visible = True
    APP.Visible = True
    APP.Workbooks.Open ThisWorkbook.Path & "\B.xls"
    APP.Workbooks("\B.xls").Sheets(1).Cells.Copy wb.Sheets(1).Cells     '偵錯到此列
    'Set APP = Nothing
    Application.Visible = False
End Sub
1.如何可將Workbooks("\B.xls").Sheets(1).Cells 整個copy 到 wb.Sheets(1).
    可用 CopyAs ?
2.APP.Workbooks("\B.xls").Sheets(1)可寫入嗎?
  敬請指導

TOP

回復 5# barrykuo
Ex()中   Workbooks("D:\programs\BOOK1.XLS") 錯誤
改為
Workbooks("BOOK.XLS") 或 Workbooks(1)

TOP

回復 6# yangjie
自己 Try 很久 終於可 cells.copy
功力差,所以很長
Private Sub CommandButton4_Click()
      Set wb = ThisWorkbook
      wb.Activate
      Application.Visible = True
      APP.Visible = True
      Application.DisplayAlerts = False
      Set wb1 = APP.Workbooks.Open(ThisWorkbook.Path & "\B.xls", True, False)
      wb1.Activate
      APP.Workbooks(1).Sheets(1).Activate
      APP.Cells.Copy
      wb.Activate
      Windows("A.xls").Activate
      Sheets(1).Cells.ClearContents
      Cells(1, 1).Select
      ActiveSheet.Paste
      APP.CutCopyMode = False
      Application.CutCopyMode = False
      wb.Save
      APP.Quit
      Sheets(1).Cells(1, 1).Activate
      Application.DisplayAlerts = True
      Application.Visible = False
End Sub
若要copy  多頁 就累了

TOP

回復 7# stillfish00
回stillfish00大大,謝謝您!
可我真的存一個文件叫[book1.xls],而且存在目錄為[D:\programs底下],按GBKEE大大程序執行Ex巨集出現錯誤訊息=「執行階段錯誤424」說明此觸需要物件。

所以不懂Ex()底下這樣寫是不是不對,APP.Workbooks("D:\programs\BOOK1.XLS").Sheets(1).[A1]。
感謝你們!
人生只有三天,只有活在今天最踏實

TOP

回復 8# yangjie
  1. Private Sub CommandButton4_Click()
  2.     With New Application
  3.         .Visible = True
  4.        .Workbooks.Open (ThisWorkbook.Path & "\B.xls")
  5.        .Workbooks("B.xls").Sheets(1).Cells.Copy
  6.         With ThisWorkbook.Sheets(1)
  7.             .Range("A1").Select
  8.             .PasteSpecial Format:="XML 試算表"
  9.         End With
  10.        .Application.CutCopyMode = False
  11.         .Quit
  12.     End With
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題