VBAsearch值并更改Row + 2的格式

有人能给我伸出援助之手吗? 我想要实现的是在列中search一个文本string,如果它符合我的标准,请更改dynamic范围的格式。 我很难弄清楚如何使这个范围dynamic。 它始终是匹配string+ 2的行。

这是迄今为止我所得到的:

Sub FormatPercentages() Dim RowToTest As Long For RowToTest = Cells(Rows.count, 27).End(xlUp).Row To 2 Step -1 With Cells(RowToTest, 27) If .Value Like "*Efficiency*" _ Then _ Range("AD129:AS131").NumberFormat = "0%" End With Next RowToTest End Sub 

我需要范围部分的帮助: 范围(“AD129:AS131”)。NumberFormat =“0%”我认为这应该是这样的东西,虽然我知道它写得不好( AD&“N”:&AD.xlToRight &“N”+2 )。 其中N是与string效率相匹配的行号。

谢谢你

可能混淆来自_的奇怪用法。 它是这样工作吗?

 Sub FormatPercentages() Dim RowToTest As Long For RowToTest = Cells(Rows.Count, 27).End(xlUp).Row To 2 Step -1 With Cells(RowToTest, 27) If .Value Like "*Efficiency*" Then Range("AD" & RowToTest & ":AD" & RowToTest + 2).NumberFormat = "0%" End If End With Next RowToTest End Sub 

我没有testing它,但它看起来像你所需要的,假设你的问题NRowToTest

尝试Resize属性:

 Range("AD" & RowToTest).Resize(3, 1).NumberFormat = "0%" 

要么,

 Cells(RowToTest, 27).Resize(3, 1).NumberFormat = "0%" 

要么像你这样的代码:

 ... If .Value Like "*Efficiency*" Then Range(Cells(RowToTest, 27), Cells(RowToTest, 27).End(xlToRight)).NumberFormat = "0%" End If ... 

或者如果从第3行开始使用条件格式(你开始在2 …悲伤)

 Range: =$AD$3:$BD$10000 Formula: =OR(ISNUMBER(SEARCH("Efficiency",$D1:$D3))) 

有条件的格式化也没有find“效率”…(如果要search区分大小写,请用FINDreplaceSEARCH