[英]In Excel/VBA, how to apply a formula to a range based on cell value?
我有一列數據(S8:S999),其中包含各種計量單位(PC、CTN、EA 等)。 右側的列 (T8:T999) 包含一個位置。
我想將公式應用於相鄰單元格(T8:T999)中的單元格,但僅限於(S8:S999)中的值包含“PC”值的地方。 我們有具有多個 UOM 的項目,例如 CTN 和 PC 變體有不同的位置。 我們的報告是有限的,並且只生成主要/CTN 位置。 此按鈕/腳本將更改列為 PC 的任何項目的位置(但不是 CTN 等)
因此,如果“S8”是“PC”,則將公式應用於“T8”
如果“S27”是“PC”,則將公式應用於“T27”等
更新代碼(感謝 BigBen)
Private Sub CommandButton1_Click()
Dim UomRange As Range
Set UomRange = Worksheets("START").Range("S8:S999")
For Each cell In UomRange
If cell.Value Like "PC" Then
cell.Offset(, 1).Formula = "=VLOOKUP(J8,LocRef!$A$1:$C$9999,3,FALSE)"
Else
End If
Next
End Sub
你正在嘗試做的事情看起來很奇怪,但無論如何......
Private Sub CommandButton1_Click()
Dim UomRange As Range
Dim Dummy As Integer
Set UomRange = Worksheets("START").Range("S8:S999")
For Each cell In UomRange
if cell.HasFormula = False then 'Has no formula, so could be "PC"
If cell.Value Like "PC" Then
Range("S8:S999").Formula = "=MyFormulaHere"
end if
'else 'If it has a formula, it by definition won't look like the text "PC" (unless you've if logic in your formula?) so we can bypass
end if
Next
End Sub
但我懷疑你並不想做你迄今為止提出的事情......
編輯:
如果 UoMRange 應該代表可以驅動位置變化的項目編號 - 通過公式發生,那么原始中 UoMRange 的定義是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.