在Excel中查找单元格并更改其值

时间:2014-12-01 05:54:55

标签: excel vba excel-vba

感谢您花时间阅读我的问题,我不是程序员,我希望我能在这里得到一些帮助。

我想在一个范围内找到一个单元格并改变它的值。

例如,范围A1:A20,If" Sales"在那里(比如使用Vlookup或其他东西) - 然后将其值改为"销售Q1"或者我指定的任何其他内容。

我感谢大家的帮助和时间......

3 个答案:

答案 0 :(得分:1)

有点老了,但我已经添加了一点它,以便它找到像字符串一样的值。因此,例如,如果我正在寻找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

答案 1 :(得分:0)

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列中查找销售。

答案 2 :(得分:0)

基于上一个答案的代码:

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指令之间的行多次指示它(在本例中为20次)替换i每次都有不同的号码(第一次用1,第二次用2,最后一次用20)。

Like指令允许您执行与=无关的匹配。 *表示任何内容,因此如果您使用"*Sales*"表示您希望匹配包含0或某些字符的任何单元格,则Sales,然后是0或更多字符。例如,您可以使用"Sales*"来匹配以Sales开头的单元格。