Text(E2,"MM/DD/YYYY")
式をExcel VBAで適用したかったのです。私は複数のシートを使用して、セルの宛先とセルの参照は固定されていません。それで、私は完全に動作しているCell宛先に対してInput-boxメソッドを使用し、inputboxメソッドを介して手動でセル参照を選択したり変更したりしたかったのです。 など。私はA2セルで上記の式を書いて、私のターゲットセルはE2です。セルの選択はinputboxを介して行われます。入力ボックスメソッドを使用した式への参照
私の計画はinputboxで両方のものを選択することでしたが、私はちょうど初心者なので、計画を変更してコードを書き直しました。しかし、入力ボックスで式範囲を編集しているときにコードが問題を抱えているように見えますが、時には自分のiputsを考慮しません。私はテキスト(E2,"MM/DD/YYYY")
を言うなら、それはテキスト(D2か何か、「MM/DD/YYYY」)
Option Explicit
Sub FinalTxtDte()
Dim Rng As range
Dim LastRow As Long
Dim Frmla As String
Dim DestRng As range
On Error Resume Next ' if the user presses "Cancel"
Set Rng = Application.InputBox("Select a Cell which needs to be converted in Date format.", "Range Selection", Type:=8)
Err.Clear
On Error GoTo 0
If Not Rng Is Nothing Then
Frmla = "=TEXT(" & Rng.Address("False", "False") & ",""MM/DD/YYYY"")"
On Error Resume Next ' if the user presses "Cancel"
Set DestRng = Application.InputBox("Select a Cell where you would like to get a Converted Date.", "Range Selection", Type:=8)
Err.Clear
On Error GoTo 0
If Not DestRng Is Nothing Then
DestRng.Formula = Frmla
LastRow = Rng.End(xlDown).Row
DestRng.Select
range(Selection, Selection.Offset(LastRow - Rng.Row, 0)).Select
Selection.FillDown
range(Selection, Selection.Offset(LastRow - Rng.Row, 0)).Value _
= range(Selection, Selection.Offset(LastRow - Rng.Row, 0)).Value
End If
End If
End Sub
'r [0] c [1]'は選択を1つだけオフセットします。 'r [0] c [0]' – cyboashu
をコメントアウトして何が起こるかを確認します。おそらくRNGはNothingではなくむしろ= ""をチェックするべきだと思います。 – SJR