求助大神
vba吧
全部回复
仅看楼主
level 1
萌萌爸爸 楼主
下面是代码,代码中是复制TRUE行所在的整行数据,能帮忙改成TRUE所在行的B:I列吗?感谢[乖]
Sub CopyTrueRowsToSheet2()
Dim wsSource As Worksheet: Set wsSource = ThisWorkbook.Worksheets("查找,复制整行")
Dim wsTarget As Worksheet: Set wsTarget = ThisWorkbook.Worksheets("Sheet2")
' 找到最后一行
lRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
For i = 1 To lRow
If UCase(Trim(wsSource.Range("A" & i).Value)) = "TRUE" Then
rowToCopy = i
Exit For
End If
Next
' 如果找到符合条件的行,则执行复制和粘贴操作
If rowToCopy > 0 Then
wsSource.Rows(rowToCopy).Copy
wsTarget.Rows(2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
MsgBox "已将 Sheet1 中第 " & rowToCopy & " 行复制并粘贴到 Sheet2。", vbInformation, "提示"
Else
MsgBox "未找到要复制的行。", vbCritical, "错误"
End If
End Sub
2023年05月15日 08点05分 1
吧务
level 11
wsSource.Rows(rowToCopy).Copy
改成Range 试试,这会暂时没电脑测试
2023年05月15日 13点05分 2
谢谢大神,我试试
2023年05月15日 23点05分
level 7
wsSource.Rows(rowToCopy).Copy
这个语句复制 rowToCopy 的整行,如果要复制该行的B:I列,有一下方法(一行一种):
wsSource.Range("B" & rowToCopy & ":I" & rowToCopy).Copy
wsSource.Range(wsSource.Cells(rowToCopy,"B"), wsSource.Cells(rowToCopy,"I")).Copy
wsSource.Cells(rowToCopy,"B").ReSize(1, 8).Copy
2023年05月16日 01点05分 3
谢谢大佬
2023年05月16日 04点05分
level 8
autofillter筛选或者find函数好点吧
2023年05月16日 05点05分 4
level 1
wsSource.Rows(rowToCopy).Copy
用相对地址也可以:
wsSource.Rows(rowToCopy).range("B1:I1").Copy
2023年05月16日 16点05分 5
1