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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...