[英]Fill cells based on value in adjacent cell
也许是这样的:
Private Sub CommandButton1_Click()
Dim rng as Range
Set rng = Sheets("Sheet1").Range("A2:A15")
If Application.CountA(rng) > 0 Then
rng.SpecialCells(xlCellTypeConstants).Offset(,1).Value = "please enter status"
End If
End Sub
编辑:
如果列中的单元格是公式,则将xlCellTypeConstants
更改为xlCellTypeFormulas
。
编辑 2 :
这是一种简单的方法来做你正在寻找的东西:
Private Sub CommandButton1_Click()
Dim rng As Range
Set rng = Sheets("Sheet1").Range("B2:B15")
rng.Formula = "=IF(A2<>0,""please enter status"", """")"
rng.Value = rng.Value
End Sub
或使用Evaluate
:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
Dim rng As Range
Set rng = ws.Range("B2:B15")
rng.Value = ws.Evaluate("IF(A2:A15<>0,""please enter status"", """")")
End Sub
编辑3 :(第三次是魅力?)
如果没有找到工作编号,另一种选择是让 Vlookup 返回一个空白字符串""
而不是0
。
然后,您可以利用Range.SpecialCells
的第二个参数,如下所示(由@JvdV 提出):
Private Sub CommandButton1_Click()
Dim rng As Range
Set rng = Sheets("Sheet1").Range("A2:A15")
rng.SpecialCells(xlCellTypeFormulas, xlNumbers).Offset(, 1).Value = "please enter status"
End Sub
编辑 4 :
您还可以使用AutoFilter
:
Private Sub CommandButton1_Click()
With Sheets("Sheet1").Range("A1:B15")
.AutoFilter 1, ">0"
If .Cells.SpecialCells(12).Count > 2 Then .Offset(1).Resize(14, 2).Columns(2).Value = "Please enter status"
.AutoFilter
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.