我所要做的就是取日期,在日期中添加一個日期,將其粘貼到工作表中並讓工作表在輸入的日期上運行公式。單元格全部格式化爲英文日期,但是當我用下面的代碼分配單元格的值時,它認爲它的日期是美式格式,即使它已經是英文格式,因此會嘗試將其轉換爲英文格式。我怎樣才能阻止它在美國人的思維?Excel,VBA和日期
我放棄了所有VBA的功能,並且增加了一個功能,因爲VBA讓我很頭疼。
Dim D, M, Y As String
Dim S1, S2, NewDay, NewMonth, NewYear As Integer
S1 = InStr(1, StartDate.Value, "/")
S2 = InStr(S1 + 1, StartDate.Value, "/")
Debug.Print (CStr(S1) + " " + CStr(S2))
D = Mid(StartDate.Value, 1, S1 - 1)
M = Mid(StartDate.Value, S1 + 1, S2 - S1 - 1)
Y = Mid(StartDate.Value, S2 + 1)
Debug.Print (D + " " + M + " " + Y)
NewDay = CInt(D) + 1
NewMonth = CInt(M)
NewYear = CInt(Y)
If NewDay > DaysInMonth(M, Y) Then
NewDay = 1
NewMonth = NewMonth + 1
If NewMonth > 12 Then
NewMonth = 1
NewYear = NewYear + 1
End If
End If
StartDate.Value = CStr(NewDay) + "/" + CStr(NewMonth) + "/" + CStr(NewYear)
然後在另一個函數我只設置單元格的值,像這樣
With sheet.Range("A2")
'.. Stuff
.Offset(i, 1) = StartDate.Value
日期在Excel電子表格中作爲文本存儲還是作爲序列日期(即2010年1月1日的基礎單元格值是40179)? – 2011-03-24 08:20:11
他們是連續的日期。 – Rarge 2011-03-24 11:59:13
我修復了從我的計算機上的地區從美國更改爲英國的所有內容。感謝上帝,挫折結束了。 – Rarge 2011-03-24 12:07:30