[英]Excel VBA: copy row cell on specific number format in cell
我在xlsx中有一个acces导出文件,第一列是数字。 有两种类型的数字:(YY)YYXXXX和YY / X(.X).XX
一些例子。
20002024
20052028
974021
94 / 1.1.03
93 / 5.02
981017
我只想导出年份旁边具有1的行。 所以981019是,982016否。 90 / 1.1.04是,91 / 5.01是 为此,我想我需要检查单元格是否包含“ /”,如果是,则在/旁边的数字为“ 1”时复制该单元格。 如果不是倒数第四个数字为1,则不导出该单元格。
Sub copyrows()
Dim tfCol As Range, Cell As Object
Set tfCol = Range("A:A")
For Each Cell In tfCol
If InStr(1, Cell, "/", 1) Then
If Cell.Value = "??/1*" Then
Cell.EntireRow.Copy
Sheet2.Select 'Substitute with your sheet
ActiveSheet.Range("A65536").End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
End If
ElseIf Cell.Value = "*1???" Then
Cell.EntireRow.Copy
Sheet2.Select 'Substitute with your sheet
ActiveSheet.Range("A65536").End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
End If
Next
End sub
该代码不起作用。 我真的怀疑整个If Cell.Value = "??/1*"
是否If Cell.Value = "??/1*"
。 显然不是。 速度也很慢。 所以我想我做错了。
有关如何执行此操作的任何想法? 如果发现此问题,我会提示您选择必须分隔的数字。 谢谢。
假设您的数据在A1到A5中
Sub copyrows()
Dim tfCol As Range, Cell As Object
Set tfCol = Range("A1:A5")
For Each Cell In tfCol
If InStr(Cell, "/") > 0 Then
If Cell.Value Like "??/1*" Then
Cell.EntireRow.Copy Sheet2.Range("A" & Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row + 1)
End If
ElseIf Cell.Value Like "*1???" Then
Cell.EntireRow.Copy Sheet2.Range("A" & Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row + 1)
End If
Next
End Sub
编辑1
实际上,您的代码应如下所示。 请用您的目标工作表名称替换Sheet2。
Sub copyrows()
Dim tfCol As Range, Cell As Object
Set tfCol = Range("A1:A5")
For Each Cell In tfCol
If InStr(Cell, "/") > 0 Then
If Cell.Value Like "??/1*" Then
Cell.EntireRow.Copy Sheet2.Range("A" & Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row + 1)
ElseIf Cell.Value Like "*1???" Then
Cell.EntireRow.Copy Sheet2.Range("A" & Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row + 1)
End If
End If
Next
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.