- ベストアンサー
エクセル VBA中の関数について
エクセルにてVBA中の文章で、 D7からD11に、何もなければそのまま。何かあればB7からB11に表示する。という文章を教えてください。 Bには常に値が入力されています。実行時、Bが空白にならない様にしたいです。 IF関数はわかるのですが、VBA中はどのように使用すれば良いのかわかりません。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub MACRO1() If Application.WorksheetFunction.CountBlank(.Range("D7:D11")) < 5 Then Range("D7:D11").Select Selection.Copy Range("B7").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ True, Transpose:=False End If End Sub
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
こんな感じでしょうか? With Sheets("sheet1") If Application.WorksheetFunction.CountIf(.Range("D7:D11"), "<>") > 0 Then .Range("D7:D11").Copy .Range("B7:B11") End If End With
補足
早速回答ありがとうございます。 しかし、困ったことに、Dが全て値ありorなしであれば良いのですが B7 値あり D7 値なし B8 値あり D8 値あり B9 値あり D9 値なし B10 値なし D10 値なし B11 値なし D11 値なし (Bに値がなしの時は、Dも必ずなしです。) という風に、上記のようにバラつくと上手くいきません。 なにか良い方法はないでしょうか?
お礼
ありがとうございました。 やりたい事ができました!!!毎日の作業ですので教えてもらって本当に助かりました。