Board logo

標題: [發問] 請教關於"不打開Excel檔案,寫資料到儲存格裡" [打印本頁]

作者: rbktwi    時間: 2015-1-12 11:06     標題: 請教關於"不打開Excel檔案,寫資料到儲存格裡"

請教先進們
想要把Excel"活頁簿1"裡儲存格A1("ex:123")的值,複製到 沒打開的Excel"活頁簿2"儲存格A1裡之後存檔

爬文都只找到 在不打開的情況下"獲取值",找不到"寫入值"的相關文章

請問先進們  不打開的情況下寫入值 是可行的嗎? 感謝回答
作者: HSIEN6001    時間: 2015-1-12 12:42

本帖最後由 HSIEN6001 於 2015-1-12 12:48 編輯

回復 1# rbktwi


    沒打開的Excel"活頁簿2"儲存格A1裡,輸入
=[活頁簿1.xls]Sheet1!A1
or
='[活頁簿1.xls]Sheet1'!A1

打開活頁簿2時,但沒有開啟活頁簿1--->會詢問更新 & 不要更新
兩個活頁簿都有開啟,會自動更新
作者: rbktwi    時間: 2015-1-12 13:14

回復 2# HSIEN6001

抱歉剛忘記備註

舉例活頁簿2的部分因為數量多,沒辦法一一先把函數或者vba建立好,所以等於是要在活頁簿1處理完,在不打開活頁簿2的情況下,把值寫入到活頁簿2的儲存格裡。

感謝HSIEN6001回覆與提醒!
作者: HSIEN6001    時間: 2015-1-12 13:20

回復 3# rbktwi

難理解是.... 活頁簿2多? ....    活頁簿1處理完
傳上附件參考,才能理解你要的需求
作者: rbktwi    時間: 2015-1-12 15:27

本帖最後由 rbktwi 於 2015-1-12 15:28 編輯

抱歉~HSIEN6001

那這樣說的話

舉例 活頁簿1 與 活頁簿2 活頁簿3 活頁簿4 ~ 活頁簿100

要把活頁簿1裡A1的值(ex:123),寫入到活頁簿2~100,總共99個活頁簿的A1裡

在活頁簿2~100不需要"開啟" 與 "寫入任何函數or程式" 的情況下,

活頁簿1該怎麼編寫函數或程式碼才能達到"寫值到其他活頁簿裡"呢?  感謝回覆~
作者: HSIEN6001    時間: 2015-1-12 17:33

回復 5# rbktwi


    不打開,怎麼放入資料???
  1. Sub 同資料夾內大量檔案存取()
  2.     Dim Path As String, file As String
  3.     Application.ScreenUpdating = False  '關閉屏幕更新
  4.     Path = "C:\資料夾\"                 '來源資料夾,自行修正
  5.     file = Dir(Path & "*.xls")          '來源檔名, 表示法 "*.xls" or "*.csv" or "關鍵字*.xls"
  6.         Do While file <> ""
  7.             Application.DisplayAlerts = False       '一般提警示訊息關閉
  8.             With Workbooks.Open(Path & file)
  9.                 [A1] = "=[活頁簿1.xls]Sheet1!A1"    '活頁簿1.xls 名稱自行修正
  10.                 ActiveWindow.Close True
  11.             End With
  12.             file = Dir
  13.         Loop
  14. End Sub
複製代碼

作者: HSIEN6001    時間: 2015-1-12 18:11

回復 6# HSIEN6001

抱歉!少了紅字那一行

    Sub 同資料夾內大量檔案存取()
    Dim Path As String, file As String
    Application.ScreenUpdating = False  '關閉屏幕更新
    Path = "C:\資料夾\"                 '來源資料夾,自行修正
    file = Dir(Path & "*.xls")          '來源檔名, 表示法 "*.xls" or "*.csv" or "關鍵字*.xls"
        Do While file <> ""
            Application.DisplayAlerts = False       '一般提警示訊息關閉
            With Workbooks.Open(Path & file)
                [A1] = "=[活頁簿1.xls]Sheet1!A1"    '活頁簿1.xls 名稱自行修正
                ActiveWindow.Close True
            End With
            file = Dir
        Loop
    Application.ScreenUpdating = True   '打開屏幕更新
End Sub
作者: rbktwi    時間: 2015-1-14 14:51

了解~ 原來一定要打開。 感謝HSIEN6001 ~
作者: 准提部林    時間: 2015-1-14 18:19

Sub 幕後開啟EXCEL_寫入()
Dim X As New Application
With X.Workbooks.Open("D:\XXX.xls")
  .Sheets("Sheet1").[A65536].End(xlUp)(2) = Now
  .Close 1
End With
End Sub




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