我得到了設置格式>「日期」的單元格區域,並且默認情況下,當我輸入任何數字時,它將轉換爲日期,我輸入的日期和1900年1月。當前月/年而不是1900年1月
如何更改它,以便在輸入一天中的數字之後始終保持當前的月份和年份?
如何在LibreOffice Calc中做到這一點?
我得到了設置格式>「日期」的單元格區域,並且默認情況下,當我輸入任何數字時,它將轉換爲日期,我輸入的日期和1900年1月。當前月/年而不是1900年1月
如何更改它,以便在輸入一天中的數字之後始終保持當前的月份和年份?
如何在LibreOffice Calc中做到這一點?
這是用於Excel。本實施例中通過A10地方使用來自A1範圍在工作表中的代碼區域以下事件宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, rint As Range, r As Range
Set rng = Range("A1:A10")
Set rint = Intersect(rng, Target)
For Each r In rint
Application.EnableEvents = False
r.Value = DateSerial(Year(Date), Month(Date), r.Value)
Application.EnableEvents = True
Next r
End Sub
因爲它是工作表的代碼,這是非常容易安裝和自動使用:
如果您有任何疑慮,請先在試用工作表上嘗試。
如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx
要刪除宏:
要了解更多關於一般的宏,請參閱:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解更多有關事件宏(工作表的代碼),請參閱:
http://www.mvps.org/dmcritchie/excel/event.htm
宏必須爲此工作啓用!
該代碼將獲取您輸入的值並將其替換爲正確構建的日期。您可以更改範圍以滿足您的需求。
@ Gary's Student的解決方案可以按如下方式適用於LibreOffice。
Sub ContentChangedHandler(oChangedRange As Object)
Dim oSheet As Object
Dim oCheckingRange As Object
Dim oIntersectRanges As Object
Dim oIntersectRange As Object
Dim oData()
Dim oRow()
Dim i%, j%, k%
oSheet = ThisComponent.getSheets().getByIndex(0)
oCheckingRange = oSheet.getCellRangeByName("A1:A10").getRangeAddress()
oIntersectRanges = oChangedRange.queryIntersection(oCheckingRange)
For i = 0 to oIntersectRanges.getCount() - 1
oIntersectRange = oIntersectRanges.getByIndex(i)
oData() = oIntersectRange.getDataArray()
For j = LBound(oData()) To UBound(oData())
oRow() = oData(j)
For k = LBound(oRow()) To UBound(oRow())
oRow(k) = CLng(DateSerial(Year(Date), Month(Date), oRow(k)))
Next
Next
oIntersectRange.setDataArray(oData())
Next
End Sub
要設置事件,請右鍵單擊工作表選項卡並選擇Sheet Events
。將Content changed
事件分配給上面的宏。
請確保將格式設置爲日期格式,轉到Format -> Cells
,否則它們將顯示爲普通數字。
您可以在計算此工作簿時選擇「選項 - >高級 - >」,並選中*使用1904年日期系統* ....旁邊的框,將其更改爲1904年1月。但是,就我而言。 2013年的類似問題,也沒有真正的解決方案:https://stackoverflow.com/questions/14993664/change-default-date-value-while-entering-time – RealCheeseLord
這基本上是不可能實現的一般。日期表示法只是應用於單元格值的數字格式。您可以通過添加僅包含公式的附加列來部分解決問題。讓我們假設包含您輸入的列是列A,並且單元格C1包含官方零日期的偏移量。然後在B列中使用公式= A1 + $ C $ 1並在整個B列中填入公式。 – moggi