excel - 如何使用VBA将包含某些文本的行复制到另一个工作表
问题描述
我正在尝试编写一个宏,如果该行中的一个单元格包含来自 C 列的文本(例如:孟买、德里等),则该行复制该行。
例如,如果有 30 行,但 C 列中只有 15 行包含文本(孟买和德里)。我想复制这 15 行并将它们粘贴到“Sheet2”中,我正在使用下面的代码。但是它只复制“孟买”。我需要 for 循环遍历同一列并复制“Delhi”。
Sub test()
Dim lastrow As Long, erow As Long
lastrow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 7 To lastrow
If Worksheets("Sheet1").Cells(i, 3) = "Mumbai" Then
Worksheets("Sheet1").Cells(i, 1).copy
erow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Sheet1").Paste Destination:=Worksheets("Sheet2").Cells(erow + 1,1)
Worksheets("Sheet1").Cells(i, 3).copy
Worksheets("Sheet1").Paste Destination:=Worksheets("Sheet2").Cells(erow + 1,2)
End If
Next i
End Sub
请让我知道如何在上面的代码中使用 And 函数。或以任何其他方式将其复制到 sheet2 中。谢谢你。
解决方案
-尝试做一个for循环
- 从表 1 到表 2 的示例副本
Dim i As Long
Dim sh As Worksheet
dim sh2 As worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
Set sh2= ThisWorkbook.Sheets("Sheet2")
For i = 1 To Application.CountA( sh.Range("C:C"))
- 通过定义 if 语句,您可以控制复制的值
- 在循环中创建一个 if 语句来控制值是否为空
- 使用循环值引用单元格
-复制 :)
if sh.Range("C" & i).Value <> "" then
sh.Range("C" & i).Copy (sh2)
end if
Next i
推荐阅读
- javascript - 查找数据属性和复选框子项
- python - AzureML 时间序列模型无法识别推理中的特征值
- java - 创建 Java 正则表达式模式以匹配 XML 中的字符串
- sql - SQL Server 设计器表重新创建
- c++ - 使用 RSA 和 SHA256 的签名不正确
- javascript - 使用带有 Handlebars.js 的 Parcel.js 并且不加载
- swift - “某些视图”类型的值在 SwiftUI 中没有成员“onDelete”
- javascript - 使用 JavaScript 向 WCF 服务发送 POST 请求时出现 400 Bad Request 错误
- spring - 为 Spring Method Security 启用编译时 AspecJ
- c++ - fwrite 在文件中打印随机字符