我有一個不幸的具體問題,我的能力谷歌/拼湊VBA代碼只能走得這麼遠。VBA搜索D列爲「PM」,然後向列B添加12小時,如果找到
我從包含顯示30分鐘間隔的列的文本文件導入報告(請參見屏幕截圖)。出於某種原因,任何時間在12PM後將在列B中顯示爲AM,但不在列D中。我試圖創建一個代碼,將在D列中搜索PM並將12小時添加到B列,以便它以PM結尾。我的嘗試不工作,我相信這是因爲範圍。
Sub AM2PM()
Dim rngC As Range
Dim rngT As Range
Set rngT = Range("B2", Cells(Rows.Count, "B").End(xlUp))
rngT.NumberFormat = "mm/dd/yyyy hh:mm:ss AM/PM"
For Each rngC In rngT
If InStr(1, (Range("D")), "PM") > 0 Then
rngC.Value = DateValue(rngC.Value) + TimeValue(rngC.Value) + 0.5
Else
rngC.Value = DateValue(rngC.Value) + TimeValue(rngC.Value)
End If
Next rngC
End Sub
任何幫助,不勝感激!
它不工作,因爲'12:00 - 12:30 PM'是**不是日期類型的對象**。這是一個字符串。您需要首先從單元格中去除「12:30 PM」。 –
@ScottHoltzman什麼是最好的方式去 –