セル内の日付フォーマット(DD/MM/YYYY)が必要
HI、
私は日付が入力される形式です.問題は、誰かが完全な日付を入力しない場合(すなわち、2017年1月1日の1/1/20が入力されています)、Excelは日付に入力されたものを変換します.データ検証は、日付を必要とするために適用されます.
範囲ですが、Excelは依然として入力されているものへの変換を(2桁の範囲dd/mm/yy内にある限り).セル値に4桁の年(DD/MM/YYYY)を持つ日付形式を強制的に持ち込むことができます.
成功しない次のコードを試してみました
プライベートサブワークシート(範囲としてのBYVALターゲット)
set x= activeSheet.range( "b8:b10")
X
の各Cについて
C.Value<>""とc.numberformat<>"dd/mm/yyyy"の場合
C.CleletContents
MsgBox "このセルでは今日の日付と1/1/2050の間の日付だけが許可されています.
の場合は終了
次のc
END SUB
返信リスト(回答:5)
日付を取得するには、制御された入力を使用することをお勧めします.これは、コードの使用方法の例とともに、それを実行するVBAユーザーフォームを含むワークブックです.
応答2# ->にスキップ3 #BernieDセルに日付を入力する場合、セルのフォーマットによって日付の表示が制御されます.(日付は、1900年1月1日からの日数であり、特別な書式が設定されています.)したがって、NumberFormatを使用して行を変更します
rngAC.NumberFormat="mmmm d、yyyy"
から
rngAC.NumberFormat="dd/mm/yyyy"
テキストボックスに日付を表示している場合は、次の行を見つけます.
Me.TextBox1.Text=g_sDate
そしてそれを
に変更しますMe.TextBox1.Text=Format(g_sDate、 "dd/mm/yyyy")
もちろん、使用するオブジェクトは(おそらく)Me.TextBox1ではありません
応答3# ->にスキップ4 #Spinaz1もう一度Bernieを感謝しますが、私は入力された日付をフォーマットしたくありません.しかし、むしろ、入力された日付が特定のフォーマットで入力され、その日と月の2桁、そしてその年の4つの桁数が必要です.言い換えれば、ユーザーが1/1/21に入った場合、それ
DD/MM/YYYY形式の日付を入力するように信号を送ります.2021年01月01日に日付を修正したら、それを受け入れます.これは可能ですか?
応答4# ->にスキップ5 #BernieD 1必須ではありません.Excelの日付は実際には単なる数値であり、1900年1月1日からの日数です.表示の書式設定は、基になる数値を変更せず、セル内での外観を変更します.数式バーでは、取得される表示を制御できません
Windowsの日付設定から.つまり、ユーザーが1/1または1/1/17または1/1/2017または1-1または1-1-17などと入力した場合. 次に、Excelはそのセルに42736を入力します-または2017年1月1日.数式バーにデフォルトのWindows形式が表示され、セルにフォーマットされた日付文字列が表示されます
そのセルに選択したもの.日付に文字列を使用することはお勧めできませんが、文字列での日付の使用方法を制御する必要がある場合は、次のような数式を使用する必要があります
= "これは入力された日付です:"&TEXT(A2、 "dd/mm/yyyy")
セルA2にその日付がある場所.
VBAでは、次のように実行されます
Msgbox "これは入力された日付です:"&Format(Range( "A2").Value、 "dd/mm/yyyy")
Msgbox "これは入力された日付です:"&Range( "A2").Text 'セルA2のフォーマットされた表示を返します
√