返回列表 上一主題 發帖

[發問] 用excel打開筆記本

[attach]booking[/attach]
請參考檔案.謝謝

2011 Shipping NE booking.zip (8.54 KB)

booking

TOP

回復 21# PJChen
輸入範圍中有錯誤值  請修改如下
  1. For Each E In Rng(1)                          '依序處裡複製範圍的儲存格
  2.         A.WriteLine (E.Text)                           '儲存格寫入文字檔
  3.     Next
  4.    
複製代碼

TOP

GBKEE,
太謝謝你了,它可以運作正常!但有個小問題想請教,現在資料寫入txt後,它會存在指定的路徑,但我要如何使TXT儲存後能自動打開?可以這麼做嗎?

TOP

回復 23# PJChen
  1. Sub Ex()
  2.     Dim Rng(1 To 2) As Range, Fs As Object, A As Object, E As Range
  3.     Application.ScreenUpdating = False
  4.     With Workbooks("test")                       '請改成要複製活頁簿的名稱
  5.         Set Rng(1) = .Sheets("booking").[B3:B35]  'Rng(1) 工作表要複製的範圍
  6.         Set Rng(2) = .Sheets("booking").[A1]      'Rng(2) 存檔名稱的儲存格
  7.     End With
  8.     Set Fs = CreateObject("Scripting.FileSystemObject")        'FileSystemObject 物件 提供對電腦檔案系統的存取。
  9.     Set A = Fs.CreateTextFile("D:\" & Rng(2) & ".txt", True)   '建立文字檔案
  10.     'CreateTextFile 方法 建立一個指定的檔名並且傳回一個用於該檔案讀寫的 TextStream 物件。
  11.     '如果可被覆蓋其值為 True,其為 False 時無法覆蓋
  12.     For Each E In Rng(1)                          '依序處裡複製範圍的儲存格
  13.         A.WriteLine (E.Text)                           '儲存格寫入文字檔
  14.     Next
  15.     A.Close
  16.     Workbooks.Open ("D:\" & Rng(2) & ".txt")
  17.     Application.ScreenUpdating = True
  18. End Sub
複製代碼

TOP

GBKEE大大,
我將程式修改後可執行,它會依指定路徑存成TXT檔,但當它自動打開時為另一個與TXT同檔名的EXCEL檔,檔案類型為文字檔!請幫我看看哪裡出了問題,我把檔案上傳了.TKS. 2011 Shipping NE booking.zip (18.29 KB)

TOP

回復 25# PJChen
Workbooks.Open ("P:\BCM\Interim\" & Rng(2) & ".txt")
修改成
Shell "Cmd /c start P:\BCM\Interim\" & Rng(2) & ".txt"

TOP

GBKEE,
完全OK.真是謝謝你!

TOP

回復 26# GBKEE
您好,想請問:
以下存檔的名稱我想再增加一個[A2],但修改後巨集卻無法執行,請幫我看看語法是不是有誤?
        Set Rng(2) = .Sheets("Booking").[A1]               'Rng(2) 存檔名稱的儲存格
        Set Rng(2) = .Sheets("Booking").[A1] & "_" & [A2]                     '修改後的存檔名稱

TOP

本帖最後由 GBKEE 於 2012-4-22 17:29 編輯

回復 28# PJChen
更正
  1. Sub Try()
  2.     Windows("Shipping for ACE.xlsx").Activate
  3.     Sheets("Booking").Select
  4.     Dim Rng(1 To 2), Fs As Object, A As Object, E As Range
  5.     '修改成 Rng(1 To 2)
  6.     Application.ScreenUpdating = False
  7.     With Workbooks("Shipping for ACE.xlsx")  '請改成要複製活頁簿的名稱(已經打開)
  8.         Set Rng(1) = .Sheets("Booking").[B1:B40]   'Rng(1) 工作表要複製的範圍
  9.         Set Rng(2) = .Sheets("Booking").[A1]
  10.         Rng(2) = Rng(2) & "_" & Rng(2).Offset(1)
  11.     End With
  12.     Set Fs = CreateObject("Scripting.FileSystemObject")        'FileSystemObject 物件 提供對電腦檔案系統的存取。
  13.     Set A = Fs.CreateTextFile("P:\TXT\" & Rng(2) & ".txt", True)   '建立文字檔案
  14.     For Each E In Rng(1)                          '依序處裡複製範圍的儲存格
  15.         A.WriteLine (E.Text)                           '儲存格寫入文字檔
  16.     Next
  17.     A.Close
  18.     Shell "Cmd /c start P:\TXT\" & Rng(2) & ".txt"  '自動打開TXT檔
  19.     Application.ScreenUpdating = True
  20. End Sub
複製代碼

TOP

回復 29# GBKEE
G大,
2個方法我都試了,但無法執行,我將檔案上傳,請幫我瞧瞧. TKS.
VBA TEST.zip (37.04 KB)

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題