簡體   English   中英

在 Excel/VBA 中,如何根據單元格值將公式應用於范圍?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM