我正在寻找一些看A列的代码,只要A列中的单元格不为空,那么B列中的相应单元格将等于特定值。
因此,如果Cell A1<> “”然后Cell B1.Value =“MyText” 并重复直到A列中的单元格为空或空。
为了进一步澄清,我已经查看了这里提出并回答的各种循环问题。他们有点帮助。但是,我不清楚如何让循环通过A列来验证A列中的每个单元格是否为空白并且在B列的相应单元格中添加一些我指定的文本。
此外,这需要是VBA宏的一部分,而不是单元格公式的一部分,例如= IF
答案 0 :(得分:6)
如果你真的想要一个vba解决方案,你可以遍历这样的范围:
Sub Check()
Dim dat As Variant
Dim rng As Range
Dim i As Long
Set rng = Range("A1:A100")
dat = rng
For i = LBound(dat, 1) To UBound(dat, 1)
If dat(i, 1) <> "" Then
rng(i, 2).Value = "My Text"
End If
Next
End Sub
的 强> 的 * 强> 修改的 * 强>
您可以像这样循环遍历范围,而不是使用变量:
Sub Check()
Dim rng As Range
Dim i As Long
'Set the range in column A you want to loop through
Set rng = Range("A1:A100")
For Each cell In rng
'test if cell is empty
If cell.Value <> "" Then
'write to adjacent cell
cell.Offset(0, 1).Value = "My Text"
End If
Next
End Sub
答案 1 :(得分:4)
另一种方式(在VBA中使用公式)。我想这也是最短的VBA代码?
Sub Sample()
Dim ws As Worksheet
Dim lRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("B1:B" & lRow).Formula = "=If(A1<>"""",""My Text"","""")"
.Range("B1:B" & lRow).Value = .Range("B1:B" & lRow).Value
End With
End Sub
答案 2 :(得分:2)
更简单的方法是:
Sub populateB()
For Each Cel in Range("A1:A100")
If Cel.value <> "" Then Cel.Offset(0, 1).value = "Your Text"
Next
End Sub
答案 3 :(得分:1)
使用IF:
功能 =IF ( logical_test, value_if_true, value_if_false )