excel - 基于标准提取数据
问题描述
我有两张纸,“SA”和“SB”。
我正在尝试将期刊从“SA”提取到“SB”。
我正在尝试使用代码中的标准。(稍后这将基于用户从组合框中选择的标准。)
如果 B或J 列中的值为 =“123456789”,我希望将工作表“SA”中的整行(或者最好是填充的最后一列)复制到工作表“SB”中。
在我的代码中,一些行粘贴在同一行的顶部而不是下一行。
Sub test()
Dim SA As Worksheet
Dim SB As Worksheet
Set SA = Worksheets("SA")
Set SB = Worksheets("SB")
Dim DBSLRow As Long
Dim ResultLRow As Long
Dim i As Long
SALRow = SA.Cells(Rows.Count, 1).End(xlUp).Row
SBLRow = SB.Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print SALRow
Debug.Print SBLRow
For i = 1 To SALRow
If Cells(i, 2) = "123456789" Or Cells(i, 10) = "123456789" Then
SA.Cells(i, 1).EntireRow.Copy
SB.Cells(SBLRow, 1).PasteSpecial
SBLRow = SBLRow + 1
Else
End If
Next
End Sub
我已阅读其他问题并且无法了解错误。
也许有更好的方法。
解决方案
首先,您需要避免不返回错误的类型不匹配,并将单元格用作工作表的属性
If SA.Cells(i, 2) = "123456789" Or SA.Cells(i, 10) = "123456789" Then
通过在“”中取 123456789,你说它是字符串类型的,但你没有在 Cells(i, 2) 中设置属性。您可以检查此单元格的 .Value 或 .Text。如果您不选择属性程序将默认检查属性。总是像下面这样使用
If SA.Cells(i, 2).Value = 123456789 ' to check value // number type of data /integer/long/double etc
If SA.Cells(i, 2).Text= "123456789" ' to check text string // text type of data / String
最好的选择是声明变量并将值设置为喜欢
dim str_Text as String : str_Text = "123456789"
dim lng_Text as Long: lng_Text = 123456789
然后检查条件
If SA.Cells(i, 2).Text= str_Text
If SA.Cells(i, 2).Value= lng_Text
下一个
SBLRow = SB.Cells(Rows.Count, 1).End(xlUp).Row + 1
如果您在 i =1 时没有设置最后一行,那么您将在占用的行中粘贴项目。
并删除 i 的增量,它将在下一步增加。试试下面的代码
Sub test()
Dim SA As Worksheet
Dim SB As Worksheet
Dim str_Condition as String : str_Condition = "123456789"
Set SA = Worksheets("SA")
Set SB = Worksheets("SB")
SALRow = SA.Cells(Rows.Count, 1).End(xlUp).Row
SBLRow = SB.Cells(Rows.Count, 1).End(xlUp).Row + 1
Debug.Print SALRow
Debug.Print SBLRow
For i = 1 To SALRow
If SA.Cells(i, 2) = str_Condition Or SA.Cells(i, 10) = str_Condition Then
SBLRow = SB.Cells(Rows.Count, 1).End(xlUp).Row + 1
SA.Cells(i, 1).EntireRow.Copy
SB.Cells(SBLRow, 1).PasteSpecial
End If
Next i
End Sub
推荐阅读
- c# - Xamarin.Forms - 在显示之前从 SQLite 更改值(日期时间)
- elasticsearch - 条款查询(ElasticSearch)不适用于某些字段值
- c++ - 为什么错误 C6386 缓冲区溢出 strsafe.h StringCch 函数?
- svn - 基于路径的授权问题
- javascript - 在 React 项目中注册服务工作者时出现问题(来自 npx create-react-app)
- c# - 在 EF 中参数化多个连接
- hadoop - 将数据从 Hbase 同步到 Hive
- html - 图像定位和 div 高度扩展的 CSS 样式问题
- java - 未调用 onPreExecute 方法
- python - 每次将多个变量发送到不同函数的最有效/用户友好的方式是什么?