VBA – 如果条件满足,然后把公式另一列

我正在努力与macros观,我想这样做:

我有列A – AH的表和行将variables。 如果列A包含“客户”,那么它应该把公式(= $ K $ 1&V3)到列L.换句话说,如果在第3行,列A3是“客户”,则在L3上将公式。 在第四行,A4列不是“客户”,而是别的东西,那么单元格L4应该是不变的。 我想将它用于所有单元格,这意味着,macros应该识别表的末尾在哪里=因为行数将从一天起改变。

我已经有这个代码:

Sub testFind() Dim rng As Range Dim rngFound As Range Set rng = Range("A:A") Set rngFound = rng.Find("Customer") If rngFound = "Customer" Then ActiveCell.FormulaR1C1 = "=R1C11&RC[10]" Else End If End Sub 

但它不工作,显然:)。

非常感谢您的任何build议!

如果您想使用VBA解决scheme,您可以使用下面的代码(代码中的解释作为注释):

 Option Explicit Sub testFind() Dim LastRow As Long Dim rng As Range, C As Range With Worksheets("Sheet1") ' <-- replace "Sheet1" with your sheet's name LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' last row in column A Set rng = .Range("A2:A" & LastRow) ' set the dynamic range to be searched ' loop through all cells in column A For Each C In rng If C.Value = "Customer" Then C.Offset(, 11).Formula = "=$K$1&V" & C.Row ' use offset to put the formula on column "L" End If Next C End With End Sub 

注意 :如果列“A”中的值包含单词“客户”(前后不必完全匹配),则使用下面的行:

 If C.Value Like "*Customer*" Then 

单元格(Rows.Count,“A”).End(xlUp).Row – 可用于查找表中的最后一行,并使用If来检查列A是否包含“customer”

  If Activesheet.formulaRC[-10]= "customer" then ActiveCell.FormulaR1C1 = "=RC[-1]&RC[11]" end if 

现在循环遍历行