看板 Visual_Basic 關於我們 聯絡資訊
在AAA工作表裡面的A1儲存格內容是01.2020 (或者是'01.2020) (這是從SAP撈下來的日期資訊 在EXCEL中會被驚嘆號提示儲存格格式有問題) 我為了移動該報表的資料到另外一張表 寫了一個VBA 結果發現該疑似日期的資料都會出錯 自動把0抹去了 我寫了一段檢查以及說明用的小程式碼如下 Sub temp() Worksheets("AAA").Activate Dim tmp As String '不知道宣告不宣告有沒有影響 tmp = Worksheets("AAA").Range("A1").Value MsgBox tmp '到這裡會正常顯示出 "01.2020" Worksheets("AAA").Range("A1") = tmp '這時 原來的 "01.2020" 會被覆蓋為 "1.202" '意思是如果我想把A1的內容複製到其他儲存格 會無法正確的複製"01.2020" '我試著使用cstr(tmp) 也得到一樣失敗的結果(就像在複製過程中被強制轉換為數字去0) 請問遇到這種問題我應該檢查或者修正什麼 目前我是硬改成Worksheets("AAA").Range("A1") = "'" & tmp 但是知其然卻不知其所以然 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.190.127.212 (香港) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1577087792.A.C24.html ※ 編輯: D600dust (203.190.127.212 香港), 12/23/2019 16:05:44
newacc: Range("A1").NumberFormat = "@" 12/23 16:42
newacc: 預設的數值格式是通用格式,會自動判斷是文字、數值或日期 12/23 16:45
newacc: 如果要強制它顯示文字,一種就是你現在的作法在前面加' 12/23 16:45
newacc: 另一種就是把數值格式改為文字 12/23 16:46
謝謝! 很清楚的說明! ※ 編輯: D600dust (203.190.127.212 香港), 12/27/2019 15:40:39
waiter337: 直接用datevalue() 包起來 02/15 18:27
pipisn1024: 可以先把要放日期的欄位,設定成文字顯示:Thisworkbo 03/20 22:15
pipisn1024: ok.worksheet("AAA").Columns("A").NumberFormat = "@ 03/20 22:15
pipisn1024: ",然後再把抓出來的日期丟到A欄就會是你想要的結果了 03/20 22:15