返回列表 上一主題 發帖

[發問] 如何分開日期和時間

回復 10# donod
這兩句有"D:"是錯誤
fs = ThisWorkbook.Path & "D:\test5.txt" 'TXT檔名目錄
fs = ThisWorkbook.Path & "D:\test5.xlsx" '寫入目標檔案目錄

改成
fs = ThisWorkbook.Path & "\test5.txt" 'TXT檔名目錄
fs = ThisWorkbook.Path & "\test5.xlsx" '寫入目標檔案目錄

TOP

回復 10# donod

錯在哪裡?
1.你這個檔如果是已經存檔
ThisWorkbook.Path已經會傳回你這個檔案的資料夾位置
fs = ThisWorkbook.Path & "D:\test5.xlsx"
這樣fs就已經不是"D:\test5.xlsx"了
Workbooks.Open就會產生找不到檔案的錯誤
2.你把程式碼寫在工作表模組內,而With Sheets(1)敘述區段內
沒有加上.(句號)就會指向程式所在工作表內的儲存格
        .Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1)), TrailingMinusNumbers:=True
只差在紅色的點Destination:=.Range("A1")
學海無涯_不恥下問

TOP

本帖最後由 donod 於 2013-4-8 22:32 編輯

回復 11# luke
回復 12# Hsieh
如果來源檔案test5.txt是在D:\
想用另外一個VBA檔案將test5.txt轉換成想要的格式檔test5a.xlsx,如何寫?謝謝!

TOP

回復  luke
回復  Hsieh
如果來源檔案test5.txt是在D:\
想用另外一個VBA檔案將test5.txt轉換成想要的格式檔test5a.xlsx,如何寫?謝謝!
donod 發表於 2013-4-8 22:29

大大可在2#中找到相關檔案

TOP

現在只差A欄的日期和時間未能分開,請大大指教如何改寫。謝謝!
test5.rar (245 Bytes) 來源檔
test A.rar (14.07 KB) VBA檔
test5a.rar (7.14 KB) 想要的結果

TOP

回復 15# donod

檔目錄可去除ThisWorkbook.Path 如下
fs = "D:\test5.txt" 'TXT檔名目錄
fs = "d:\test5.xlsx" '寫入目標檔案目錄

另日期"m/d/yyy"格式要改成 "yyyy/m/d" 如下

.[A:A].NumberFormatLocal = "yyyy/m/d" '變更日期格式

TOP

回復 15# donod
  1. Sub Ex()
  2.     Dim E As Range, W As String
  3.     Workbooks.OpenText Filename:="D:\test5.txt"
  4.     With ActiveWorkbook.Sheets(1)
  5.         .Cells.Replace ";", " ", xlPart
  6.         .Columns(2).Insert
  7.         For Each E In .Range("A:A").SpecialCells(xlCellTypeConstants)
  8.             W = E
  9.             E = Mid(W, 1, 10)
  10.             E.NumberFormatLocal = "m/d/yyyy;@"
  11.             E.Offset(, 1) = Replace(Mid(W, 12), "/", ":")
  12.         Next
  13.     End With
  14. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 17# GBKEE


    版大真的知小輩,正是這個!謝謝GBKEE版大!

TOP

回復 17# GBKEE


2013/04/02/09/21/00; 22159; 22159; 22131; 22131; 330
2013/04/02/09/22/00; 22133; 22140; 22130; 22140; 153
2013/04/02/09/23/01; 22140; 22148; 22134; 22139; 109
請問在匯入源檔案時,不匯入屬於時間中的秒值(紅色數字),可以怎麼寫,再次謝謝版大!

TOP

回復 19# donod

  1.            'E.Offset(, 1) = Replace(Mid(W, 12), "/", ":")
  2.             E.Offset(, 1) = Replace(Mid(W, 12, 5), "/", ":")
  3.            'W這字串從第12個字元起取5個字元
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題