Board logo

標題: 兩個"獨立"運作的Excel活頁薄如何用DDE互傳資訊?? [打印本頁]

作者: samsung2888    時間: 2013-11-14 18:08     標題: 兩個"獨立"運作的Excel活頁薄如何用DDE互傳資訊??

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

回復 1# samsung2888
請上傳檔案,否則難以理解你的真正問題。
作者: GBKEE    時間: 2013-11-15 08:59

回復 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
複製代碼

作者: samsung2888    時間: 2013-11-16 09:55

回復 3# GBKEE

GBKEE大大....你太厲害了!!!我就是要找這個方法!!這問題困擾了我很久....果然是超級版主....真的非常感恩.....謝謝!!!!:handshake
作者: barrykuo    時間: 2014-7-7 15:39

回復 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
複製代碼
請問哪裡出錯?
作者: yangjie    時間: 2014-7-8 10:05

回復 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)可寫入嗎?
  敬請指導
作者: stillfish00    時間: 2014-7-9 22:59

回復 5# barrykuo
Ex()中   Workbooks("D:\programs\BOOK1.XLS") 錯誤
改為
Workbooks("BOOK.XLS") 或 Workbooks(1)
作者: yangjie    時間: 2014-7-9 23:44

回復 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  多頁 就累了
作者: barrykuo    時間: 2014-7-10 13:05

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

所以不懂Ex()底下這樣寫是不是不對,APP.Workbooks("D:\programs\BOOK1.XLS").Sheets(1).[A1]。
感謝你們!
作者: GBKEE    時間: 2014-7-10 17:20

回復 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
複製代碼

作者: yangjie    時間: 2014-7-12 00:22

回復 10# GBKEE
漂亮
萬分感激  GBKEE版大




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)