Vba 我如何让我的代码扫描我的数据,复制某些选定的数据行并将其粘贴到不同的工作表?
因此,基本上我在wksht1中有一组数据,我希望扫描这些数据,以选择符合某个if-then语句(请参见下面的代码)的所有行,然后将它们复制到pastesht。到目前为止,我有我的代码,但它在第20行给了我一个错误,我不知道我需要修复什么。请提前帮助和感谢Vba 我如何让我的代码扫描我的数据,复制某些选定的数据行并将其粘贴到不同的工作表?,vba,excel,copy-paste,with-statement,Vba,Excel,Copy Paste,With Statement,因此,基本上我在wksht1中有一组数据,我希望扫描这些数据,以选择符合某个if-then语句(请参见下面的代码)的所有行,然后将它们复制到pastesht。到目前为止,我有我的代码,但它在第20行给了我一个错误,我不知道我需要修复什么。请提前帮助和感谢 1 Sub Try() 2 Dim wksht1 As Worksheet, pastesht As Worksheet 3 Dim LastRowinpastesht As Long 4 5 With This
1 Sub Try()
2 Dim wksht1 As Worksheet, pastesht As Worksheet
3 Dim LastRowinpastesht As Long
4
5 With ThisWorkbook
6 Set wksht1 = Sheets("AAA")
7 Set pastesht = Sheets("PPP")
8 LastRowinpastesht = pastesht.Cells(Rows.Count, 1).End(xlUp).Row + 1
9 End With
10
11 With wksht1
12 Last1 = Cells(Rows.Count, "B").End(xlUp).Row
13 For p = Last1 To 1 Step -1
14 If (Cells(p, "F").Text) = "SSSS" And (Cells(p, "U").Value) <= 5 And (Cells(p, "U").Interior.ColorIndex) = xlNone Then
15 Cells(p, "A").EntireRow.Select
16 Selection.Copy
17 End If
18
19 With pastesht
20 Cells(LastRowinpastesht, 1).Paste
21 Application.CutCopyMode = False
22 End With
23 Next p
24 End With
25 End Sub
1子尝试()
2维wksht1作为工作表,粘贴SHT作为工作表
3英寸最后一行长度等于
4.
5.使用此工作簿
6套wksht1=板材(“AAA”)
7套pastesht=板材(“PPP”)
8 LastRowinpastesht=pastesht.Cells(Rows.Count,1).End(xlUp).Row+1
以…结尾
10
11与wksht1
12 Last1=单元格(Rows.Count,“B”)。结束(xlUp)。行
13表示p=Last1至1步骤-1
14如果(单元格(p,“F”).Text)=“SSSS”和(单元格(p,“U”).Value)尝试以下操作:
Sub TryMod()
Dim WS1 As Worksheet, PasteSht As Worksheet
Dim PShtNRow As Long, WS1LRow As Long
With ThisWorkbook
Set WS1 = .Sheets("AAA")
Set PasteSht = .Sheets("PPP")
End With
With WS1
WS1LRow = .Cells(Rows.Count, "B").End(xlUp).Row
For Iter = WS1LRow to 1 Step -1
PShtNRow = PasteSht.Cells(PasteSht.Rows.Count, 1).End(xlUp).Row + 1
If .Cells(Iter, "F").Value = "SSSS" And .Cells(Iter, "U").Value <= 5 And .Cells(Iter, "U").Interior.ColorIndex = xlNone Then
.Rows(Iter).Copy PasteSht.Rows(PShtNRow)
End If
Next Iter
End With
Application.CutCopyMode = False
End Sub
Sub-TryMod()
将WS1标注为工作表,粘贴为工作表
变暗PShtNRow尽可能长,WS1LRow尽可能长
使用此工作簿
设置WS1=.Sheets(“AAA”)
设置粘贴样式=.Sheets(“PPP”)
以
使用WS1
WS1LRow=.Cells(Rows.Count,“B”).End(xlUp).Row
对于Iter=WS1LRow至1步骤-1
PShtNRow=PasteSht.Cells(PasteSht.Rows.Count,1).End(xlUp).Row+1
如果.Cells(Iter,“F”).Value=“SSSS”和.Cells(Iter,“U”).Value范围对象不支持使用粘贴
用单元格(LastRowinpastesht,1)替换出错的行。粘贴专用xlPasteAll
这应该会澄清这一点。另外还有其他错误需要检查,仅供参考,我认为Last1
从未在任何地方声明过 试着限定它.Cells(LastRowinpastesht,1)。粘贴
。还有,我看到了一些错误。让我试着编辑它。:)还可以将Last1=Cells(Rows.Count,“B”).End(xlUp)。Row
更改为Last1=Cells(.Rows.Count,“B”).End(xlUp)。Row
和每条语句Cells(…)
更改为。Cells(…)
我尝试了这两种方法,但仍然在同一位置出现错误。+1实际上range不支持粘贴属性,但是你的代码解决了这个问题:)它实际上工作得很好,非常感谢你解释你的代码,这样我才能真正理解我的错误所在。非常感谢@西莫科:我真的不明白关于射程物体的空洞部分。我的意思是,在很多事情中,真的,微软D谢谢,作品。祝你好运。:)