如果B列中的单元格为空,我想用数据填充几列 我已经设法为一个专栏做了这个,但我很难让它运行多个专栏...... 因此,如果B不是空白,则用Customer完成列K,用Allow完成列P并用正常完成列Q(还没有完成,因为还没有让P工作!)
For Each Cel In Range("B18:B90000")
If Cel.Value <> "" _
Then Cel.Offset(0, 9).Value = "Customer"
'Cel.Offset(0, 5).Value = "Allow"
Next
这帮助我做了一个专栏: VBA - If a cell in column A is not blank the column B equals 这有助于我执行2个动作,但它不起作用 https://www.mrexcel.com/forum/excel-questions/524212-vba-if-statements-can-you-have-multiple-actions-then-area.html 如果有人可以提供帮助,那将非常感激 谢谢!
答案 0 :(得分:0)
好吧,你刚忘了End If
而且Offset保持固定在B上,所以值不是5而是14:
For Each Cel In Range("B18:B90000")
If Cel.Value <> "" Then
Cel.Offset(0, 9).Value = "Customer"
Cel.Offset(0, 14).Value = "Allow"
Cel.Offset(0, 15).Value = "Normal"
End If
Next
我更喜欢将Then与if一起内联,因为vba确实以这种方式读取它(如果你在vba控制台中使用f8,你会看到)。
答案 1 :(得分:0)
也许:
Sub FillIn()
Dim i As Long
For i = 18 To 90000
If Cells(i, "B") <> "" Then
Cells(i, "K") = "Customer"
Cells(i, "P") = "Allow"
Cells(i, "Q") = "Normal"
End If
Next i
End Sub
答案 2 :(得分:0)
您也可以使用以下更快的内容
Option Explicit
Public Sub testing()
With Worksheets("Sheet1").Range("B18:B90000")
Dim Cel As Range
If Application.WorksheetFunction.CountBlank(.Cells) > 0 Then
For Each Cel In .SpecialCells(xlCellTypeBlanks)
Cel.Offset(0, 9).Value = "Customer"
Cel.Offset(0, 14).Value = "Allow"
Cel.Offset(0, 15).Value = "Normal"
Next Cel
End If
End With
End Sub