設定された書式> "日付"のセルの範囲があります。既定では、数値を入力すると、入力した日と1900年1月の日付に変換されます。現在の月/ 1900年1月の代わりに
これを変更するには、今日の年月日を入力した後、常に現在の月と年が得られますか?
LibreOffice Calcでこれを行う方法aswell?
設定された書式> "日付"のセルの範囲があります。既定では、数値を入力すると、入力した日と1900年1月の日付に変換されます。現在の月/ 1900年1月の代わりに
これを変更するには、今日の年月日を入力した後、常に現在の月と年が得られますか?
LibreOffice Calcでこれを行う方法aswell?
これはExcel用です。それがワークシートのコードであるので、非常に簡単にインストールし、使用する自動化されて
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
:
この例では、 A1 A10 を通して行うワークシートのコード領域に次のイベントマクロの範囲を使用しています問題がある場合は、まず試用ワークシートで試してみてください。
ブックを保存すると、マクロが保存されます。 後で2003その後、Excelのバージョンを使用している場合は、マクロを削除するにはかなりの.xlsx
より.xlsmとして にファイルを保存する必要があります。
を閉じる:
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
に移動して日付としてセルをフォーマットしてください。そうでない場合は、通常の数値として表示されます。
このワークブックを計算するときに 'Options - > Advanced - >に行き、* 1904 date systemを使う*のチェックボックスをオンにして1904年1月に変更することができます。 2013年の同様の質問ですが、実際の解決策もありません:https://stackoverflow.com/questions/14993664/change-default-date-value-while-entering-time – RealCheeseLord
これは基本的には基本的に実装が不可能です。日付表現は、セル値に適用される数値書式です。数式だけを含む列を追加することで、問題を部分的に解決することができます。入力を含む列が列Aであり、セルC1が公式のゼロ日付へのオフセットを含むと仮定します。次に、B列に= A1 + $ C $ 1のような数式を使用し、B列全体の数式を入力します。 – moggi