因为我对VBA脚本的了解有限,所以我再次陷入困境。
我有这个脚本:
Sub new_Group()
Dim rnTarget As Range
Set rnTarget = Blad2.Cells(Range("A9:A44").Cells.Count, 1).End(xlUp)
If rnTarget <> "" Then Set rnTarget = rnTarget.Offset(1)
Blad1.Range("A7:F15").Copy
Blad2.Range(rnTarget.Address).PasteSpecial Paste:=xlPasteValues
Blad2.Range(rnTarget.Address).PasteSpecial Paste:=xlPasteFormats
Blad2.Range("P8").Value = Blad2.Range("P8").Value + 10
End Sub
它找到A9到A44范围内的第一个空单元格,并在其位置复制预定数量的单元格。
我现在的问题是,如果在A9:A44中没有单元格为空,是否可以让它开始寻找另一个范围? 我希望它首先检查从A9到A44的空单元格,如果没有找到,则开始查看范围H9到H44,依此类推。
我试过了:
Set rnTarget = Blad2.Cells(Range("A9:A44, H9:H44").Cells.Count, 1).End(xlUp)
然而它只是继续走下A栏。 我是否必须以某种方式制作另一个?
答案 0 :(得分:0)
Sub new_Group()
If (new_asd("A") = True) Then
new_asd ("H")
End If
End Sub
Function new_asd(new_col As String) As Boolean
Dim rnTarget As Range
new_asd = False
If Blad2.Range(new_col & "44") = "" Then
Set rnTarget = Blad2.Cells(Range(new_col & "9:" & new_col & "44").Cells.Count, Range(new_col & 1).Column).End(xlUp)
If rnTarget <> "" Then
Set rnTarget = rnTarget.Offset(1)
Blad1.Range("A7:F15").Copy
Blad2.Range(rnTarget.Address).PasteSpecial Paste:=xlPasteValues
Blad2.Range("P8").Value = Blad2.Range("P8").Value + 10
Else
new_asd = True
End If
Else
new_asd = True
End If
End Function