2017-10-10 78 views
-1

Files hereVBA擅長 - 問題多時間格式

你好,

我想編寫代碼來設置報表格式。該報告的主要問題是,某些單元格在單元格中存儲多個數據片段時,每行只能在每個單元格中存儲一條數據。到目前爲止,我的解決方案是使用文本到列的功能爲受影響的單元格,粘貼所有其他數據轉置,並最終複製和重新轉置新的數據通過原始報告區域。迄今爲止,這一切都奏效了,但我遇到了存儲時間的單元問題。單次(例如13:00)的單元格是自定義格式hh:mm,該單元格將轉換爲十進制數字。多次(例如11:009:008:0010:30)的單元格被視爲一個字符串。

我目前用來分割時間的代碼適用於多個時間單元格,因爲它在字符串中搜索「:」,但vba在自定義格式單元格13:00內沒有檢測到「:」,因爲它在內部看到該單元格的值爲0.56412。

我對這裏要做什麼感到不知所措。我無法改變報告到達的格式。我的想法是,也許我可以找到一種方法將自定義格式「13:00」變成字符串「13:00」而不是0.56412

我附上了代碼文件和我正在測試編碼的截斷虛擬報告。我想感謝所有提前回復他們幫助的人!

+0

也許使用如果不是'發現:'是沒有然後。這將是單倍和雙倍的時間。否則將用於雙重輸入。 – mooseman

+1

您認爲有多少人會下載並運行您的宏啓用文件?請閱讀[如何提問](http://stackoverflow.com/help/how-to-ask)瞭解如何在本網站獲得更有效的幫助。 –

回答

0

到一個單一的時間更改爲一個字符串,你可以使用format,並確定價值Excel作爲使用字符串'

例如:

'immediate window 
[a1]="'"&format([a1],"hh:nn") 
'or, using a range 
range("A1")="'"&format(range("A1"),"hh:nn") 

可以使用isnumeric來檢查它是否是一個單次。 意味着這是一個時間,錯誤意味着它是一個時間串

+0

非常感謝!我認爲這會起作用。 – xeno234