excel2007VBA 二つの動作の繰り返し処理
excel2007でマクロを勉強し始めたばかりです。VBAの繰り返し処理をしたいのですが、以下のようなマクロの請求書個別発行を一括発行にしたいと考えています。繰り返し開始から、終了までを、数値がなくなるまで繰り返したい場合、どのようになるでしょうか。よろしくお願いします。
Sub 請求書個別発行()
'
' 請求書個別発行 Macro
'
'
Range("A3:R24").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"売上一覧表!Criteria"), CopyToRange:=Range("W6:AN50"), Unique:=False
Sheets("得意先").Select
Range("C3:O90").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"得意先!Criteria"), CopyToRange:=Range("R6:AD325"), Unique:=False
繰り返し開始
Sheets("売上一覧表").Select
Range("T4").Select (T4からT5,T6,T7、、、と降順に値がなくなるまで選択される。)
Selection.Copy (T4=Y4)
Range("Y4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A3:R24").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"売上一覧表!Criteria"), CopyToRange:=Range("W6:AN50"), Unique:=False
Sheets("請求書").Select
Range("B16").Select (B16から、B17、B18,,,と降順に値がなくなるまで選択される。)
Selection.Copy (B16=I6)
Range("I6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("請求書").Select
Application.Dialogs(xlDialogPrint).Show
繰り返し終了
End Sub
以下は自分なりに考えたVBAですが、エラーになります。
Sub 請求書集計発行()
'
' 請求書発行 Macro
'
'
Range("A3:R24").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"売上一覧表!Criteria"), CopyToRange:=Range("W6:AN50"), Unique:=False
Sheets("得意先").Select
Range("C3:O90").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"得意先!Criteria"), CopyToRange:=Range("R6:AD325"), Unique:=False
Dim wst1 As Worksheet
Dim wst2 As Worksheet
Set wst1 = ThisWorkbook.Worksheets("売上一覧表")
Set wst2 = ThisWorkbook.Worksheets("請求書")
Dim i As Long
Dim j As Long
For i = 4 To 100
For j = 16 To 100
If wst1.Range("T" & i) <> "" And Not IsNull(wst1.Range("T" & i)) Then
If wst2.Range("B" & j) <> "" And Not IsNull(wst2.Range("B" & j)) Then
myrow = wst1.Cells(Rows.Count, 1).End(xlUp).Row + 1
myrow = wst2.Cells(Rows.Count, 1).End(xlUp).Row + 1
wst1.Range("T" & myrow) = wst1.Range("Y4")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A3:R24").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"売上一覧表!Criteria"), CopyToRange:=Range("W6:AN50"), Unique:=False
Sheets("請求書").Select
wst2.Range("B" & myrow) = wst2.Range("I6")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("請求書").Select
Application.Dialogs(xlDialogPrint).Show
End If
Next i
Next j
End Sub
お礼
アドバイスありがとうございました^^。 全ての入力が可能になり、とても助かりました。 ちなみに、下記様になりました (同様の件で探されている方参考になさってください)。 Sub test77() Range("a1:h300") = "" Dim kaisituki As Integer '選択開始月 Dim kaisibi As Integer '選択開始日 Dim shuuryoutuki As Integer '選択終了月 Dim shuuryoubi As Integer '選択終了日 Dim sijyou As Integer '選択市場 Dim sijyoukigou As String '選択市場記号 Range("b1").Select kaisituki = 7 kaisibi = 21 shuuryoutuki = 8 shuuryoubi = 20 sijyou = 6363 sijyoukigou = t With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://table.yahoo.co.jp/t?c=2007&a=" & kaisituki & "&b=" & kaisibi & "&f=2007&d=" & shuuryoutuki & "&e=" & shuuryoubi & "&g=d&s=" & sijyou & "." & sijyoukigou & "&y=0&z=" & sijyou & "." & sijyoukigou & "" _ , Destination:=Range("b1")) .Name = _ "t?c=2007&a=" & kaisituki & "&b=" & kaisibi & "&f=2007&d=" & shuuryoutuki & "&e=" & shuuryoubi & "&g=d&s=" & sijyou & "." & sijyoukigou & "&y=0&z=" & sijyou & "." & sijyoukigou & """" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "23" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub