人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルマクロに詳しい方にお伺いします。

以下のマクロは以前質問させて頂いた時の回答ですが、B列に“1”が入っている場合に
A列のNOを返すように組んでいただいたのですが、このVBAのB列に別に関数が入っていて
1以上の数字が返っている場合にA列のNOを返す様にするには何処をどう変えたら良いか
教えてください。 宜しくお願いいたします。

Option Explicit
Option Base 0

Sub test()

Dim PrintSheet As Worksheet
Dim DataSheet As Worksheet
Dim r As Long

Set PrintSheet = Worksheets("印刷用シート")
Set DataSheet = Worksheets("データシート")

' B1には"印刷したいデータ"という文字が入っていると仮定し、
' B2から始める
r = 2

' A列にデータがなくなるまでループ
Do While DataSheet.Cells(r, 1).Value <> ""
If DataSheet.Cells(r, 2).Value = 1 Then
' データシートのA列から印刷用シートのA1に転記する
PrintSheet.Cells(1, 1).Value = DataSheet.Cells(r, 1).Value

' 印刷用シートの再計算
PrintSheet.Calculate

' 印刷
PrintSheet.PrintOut
End If
r = r + 1
Loop

End Sub

●質問者: mokachan
●カテゴリ:コンピュータ
✍キーワード:A1 as b2 base LOOP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● fuentebella
●35ポイント

元のものを見てないのですが

' A列にデータがなくなるまでループ

Do While DataSheet.Cells(r, 1).Value <> ""

If DataSheet.Cells(r, 2).Value = 1 Then

' データシートのA列から印刷用シートのA1に転記する

の If DataSheet.Cells(r, 2).Value = 1 Then を

If DataSheet.Cells(r, 2).Value >= 1 Then

でいいのでは。

◎質問者からの返答

回答を開くのが遅くなってすみません。

後で試して見ます。

ありがとうございました。


2 ● 黒ひよこ
●35ポイント

If DataSheet.Cells(r, 2).Value = 1 Then の行が

B列に1が入っているかの条件分岐なので

If DataSheet.Cells(r, 2).Value => 1 Then に変更すれば良いかと

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ