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它,但它看起来像你所需要的,假设你的问题N
是RowToTest
。
尝试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区分大小写,请用FIND
replaceSEARCH
)