find一个单元格,并在Excel中更改其值
感谢您花时间阅读我的问题,我不是一个程序员,我希望我能在这里得到一些帮助。
我想find一个范围内的细胞,并改变它的价值。
例如,范围A1:A20,如果“销售”在那里(如使用Vlookup或其他) – 然后将其值更改为“销售Q1”或任何其他我指定的。
我感谢大家的帮助和时间
有点老,但我已经增加了一点,使其发现的价值,就像string。 所以例如,如果我正在寻找Sales1或sales222,那么我会用通配符。
Dim ws As Worksheet For Each ws In Sheets For i = 1 To 20 If LCase(ws.Cells(i, 1)) Like "sales*" Then 'ensure the search value is lowercase ws.Cells(i, 1) = "Sales Q1" End If Next Next ws
根据以前答案的代码:
Sub AnyNameYouLike() For i = 1 To 20 If SheetName.Cells(i, 1) Like "*Sales*" Then SheetName.Cells(i, 1) = "Sales Q1" End If Next End Sub
引用单元格的调用是: SheetName.Cells(rowNumber, columnNumber)
。 这是,列A变成列1,列C是列3,依此类推。
SheetName
不是您在Excel的选项卡中看到的工作表名称。 是你在左边的VBEditor中看到的名字。 在Excel中看到的工作表的名称在圆括号之间。
for
指令执行For
指令和Next
指令之间的行次数,每次都用不同的数字代替(第一次是1,第二次是2,最后一次)与20)。
Like
指令允许你进行你不会用的匹配=
。 *
表示任何东西,所以如果您使用"*Sales*"
表示您想要匹配任何包含0或某些字符的单元格,然后是Sales
,然后是0个或多个字符。 例如,您可以使用"Sales*"
来匹配以Sales
开头的单元格。
Sub replace_sales() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets For i = 1 To 20 If ws.Cells(i, 1) = "Sales" Then ws.Cells(i, 1) = "Sales Q1" End If Next Next ws End Sub
难道你不能简单地使用Ctrl + H.顺便说一下,这段代码现在将在活动工作簿的每个工作簿中将“销售”replace为“销售Q1” – 代码将在行1-20和列1中查找销售。