Excel VBA,如果某列中的单元格不是数字且为空,则将所选单元格复制并粘贴到另一列
Excel VBA, If cell is not numeric and empty in a column, selected cell copy and paste to another column
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
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