如何解决Excel VBA,如果单元格不是数字,并且在一列中为空,则将所选单元格复制并粘贴到另一列
A B C
a rm rm
b
c
d 4000
e 5000
f r1 r1
g c1 c1
h 103
i 1.8
例如,在“ B列”中,如果单元格值不是数字,则将值复制到“ C列”
如何编写该代码?
请对此进行查询!
解决方法
要做的公式是:= IF(ISNUMBER(CELL),“”,CELL)
对于您的情况,将此代码段直接放在C2中并复制下来:= IF(ISNUMBER(B2),“”,B2)
,首先,您需要找到A列的最后一个非空白行号。 然后运行循环,检查A列的值是否为数字。
Public Sub M()
Dim sh As Worksheet
Set sh = Worksheets("Worksheet name here")
Dim lastrow As Long,i As Long
lastrow = sh.Cells(1048576,2).End(xlUp).Row
For i = 1 To lastrow
If IsNumeric(.Cells(i,2).Value) = False Then
.Cells(i,3).Value = .Cells(i,2).Value
End If
Next i
结束子
,您可以尝试:
公式:
=IF(AND($B1<>"",ISNUMBER($B1)=FALSE),$B1,"")
VBA:
Sub test()
Dim LastRow As Long,i As Long
With ThisWorkbook.Worksheets("Sheet1")
LastRow = .Cells(.Rows.Count,"A").End(xlUp).Row
For i = 1 To LastRow
If .Range("B" & i).Value <> "" And Not IsNumeric(.Range("B" & i).Value) Then
.Range("C" & i).Value = .Range("B" & i).Value
End If
Next i
End With
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。