Vba 在Excel中查找单元格并更改其值
谢谢你花时间阅读我的问题,我不是程序员,我希望我能在这里得到一些帮助 我想在一个范围内找到一个单元格并更改它的值 例如,范围A1:A20,如果其中有“Sales”(比如使用Vlookup或其他东西),则将其值更改为“Sales Q1”或我指定的任何其他值 我感谢大家的帮助和时间Vba 在Excel中查找单元格并更改其值,vba,excel,Vba,Excel,谢谢你花时间阅读我的问题,我不是程序员,我希望我能在这里得到一些帮助 我想在一个范围内找到一个单元格并更改它的值 例如,范围A1:A20,如果其中有“Sales”(比如使用Vlookup或其他东西),则将其值更改为“Sales Q1”或我指定的任何其他值 我感谢大家的帮助和时间 Sub replace_sales() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets For i = 1 To 20 If ws.Cell
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吗。
顺便说一句,此代码现在将在活动工作簿的每一页中将“Sales”替换为“Sales Q1”-代码将在第1-20行和第1列中查找Sales。基于前面答案中的代码:
Sub AnyNameYouLike()
对于i=1到20
如果SheetName.Cells(i,1)像“*Sales*”那么
SheetName.Cells(i,1)=“销售第一季度”
如果结束
下一个
端接头
引用单元格的调用是:SheetName.Cells(行号、列号)
。也就是说,列A变为列1,列C变为列3,依此类推
SheetName
不是您在Excel选项卡中看到的工作表名称。是您在左侧的VBEditor中看到的名称。您在Excel中看到的工作表名称在括号之间
for
指令执行for
指令和Next
指令之间的行,执行次数与您指示的次数相同(在本例中为20次),每次用不同的数字替换i
(第一次为1,第二次为2,最后一次为20)
Like
指令允许您进行=
无法进行的匹配。*
表示任何内容,因此如果使用“*Sales*”
表示要匹配任何包含0个或某些字符的单元格,然后是Sales
,然后是0个或更多字符。例如,您可以使用“Sales*”
来匹配以Sales
开头的单元格。有点旧,但我添加了一点,使其能够找到类似字符串的值。例如,如果我在寻找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
到目前为止您尝试过什么吗?您可以使用excel中的
查找和替换。您好,谢谢您的回复。。。你能解释一下代码是如何知道在哪里查找的吗?1到20代表什么?代表哪一列?谢谢。。。。。。我不想使用Ctrl+h的原因是,我需要为大约100个文件执行此操作,每个文件有多行…此外,如果您能更新代码以包含工作表,我将不胜感激。。。这样我就可以对不同的工作表使用相同的代码。。。。谢谢!!!非常感谢你的帮助!只是想知道,为什么要用20(1到20)来执行20次?如果你把相关的数字写在一行中,从1到20,你最终会用20行。这是一样的,如果我想让某个东西执行20次,我会从1数到20(尽管你也会看到从0数到19,特别是在Java或C等其他语言中)。