Gizport
1 回答
0
Share (facebook)
133
view
全般

エクセルVBAの書式表示変換の構文を教えてください。 A列には日付が...

エクセルVBAの書式表示変換の構文を教えてください。 A列には日付が入力されています。書式表示はユーザー設定でddです。(2012/9/10と入力→10と表示されています)
これをVBAで標準、もしくは文字列に変換することは可能でしょうか?

「A列の数字が1~31の場合にのみ、同じ行のD列に(B列+C列)という数式を組む」という設定をしたいのです。
A列の書式が標準のときは、下記のコードでうまく動作するのですが、日付書式のままだと計算が行われません。
「最初にA列の書式を日付→標準へ変換する」というコードが追加できればうまく動くのではないかと思います。
ちなみに、現状のコードは以下の通りです。初心者のため、追加すべきコードとそれを入れ込む場所まで教えていただけると助かります。

Sub test()

Dim Rg, R As Range

Set Rg = ActiveSheet.UsedRange.Resize(, 1)
For Each R In Rg
If IsNumeric(R.Value) = True Then
If R.Value > 0 And R.Value < 32 Then
R.Offset(0, 3).FormulaR1C1 = "=RC[-2]+RC[-1]"
End If
End If
Next

End Sub
Yahoo!知恵袋 4274日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
普通に考えれば、こんな感じかと。

Sub Sample()
Dim rNum As Long

For rNum = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(Cells(rNum, 1).Value) Then
Cells(rNum, 4).FormulaR1C1 = "=RC-2+RC-1"
End If
Next rNum
End Sub

【追記】
A列に「dd」以外の日付形式が設定されたセルもある場合は
If IsDate(Cells(rNum, 1).Value) Then

If IsDate(Cells(rNum, 1).Value) And Cells(rNum, 1).NumberFormatLocal = "dd" Then
に変更してください。
Yahoo!知恵袋 4270日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
34
Views
質問者が納得普通に考えれば、こんな感じかと。 Sub Sample() Dim rNum As Long For rNum = 1 To Cells(Rows.Count, 1).End(xlUp).Row If IsDate(Cells(rNum, 1).Value) Then Cells(rNum, 4).FormulaR1C1 = "=RC[-2]+RC[-1]" End If Next rNum End Sub 【追記】 A列に「dd」以外の日付形式が設定されたセルもある...
4274日前view34

取扱説明書・マニュアル

607view
http://www.toyotomi.jp/.../rc-d32b.pdf
16 ページ1.88 MB
もっと見る

関連製品のQ&A