1.创建一个宏,在工作表2中查找工作表1中的值

时间:2013-01-19 14:10:04

标签: excel-vba vba excel

Q值。创建一个宏,用于在工作表2中查找工作表1中的值

  1. 要从第11行到第1000000行在工作表1中查找值“F”。
    • 在列“C”表1中查找值,第11行到第1000000行条件“仅内部颜色索引为RED的单元格”
    • 表2列“C& D”中的表数组,第4行到第1000000行。
  2. 在工作表1中创建按钮并将此宏指定给按钮。
  3. VBA代码

    Sub VA01()
        ' CREATING SALES ORDER
        Worksheets("sheet1").Range("C11:C1000000").Select
        finalrow = Cells(Rows.Count, 3).End(xlUp).Row
        For x = 11 To finalrow
            If Cells(x, 3).Interior.ColorIndex = 3 Then
                Cells(x, 6).Select
                ActiveCell.FormulaR1C1 = "=VLOOKUP(R11C3:R1000000C3,Sheet2!R4C3:R1000000C4,2,0)"
            End If 
        Next x
    End Sub
    

    运行此宏会挂起Excel并花费更多时间执行,无法创建按钮。

1 个答案:

答案 0 :(得分:0)

首先我失去了'选择'方法,这需要很多时间和资源。另外为什么你选择你的(“C11:C1000000”)范围时,后面的代码不使用这个选择呢?那么我可能会保留vlookup部分,但只保留值,因为它们不需要更新。那将是这样的:

Sub VA01()
' CREATING SALES ORDER
'Worksheets("sheet1").Range("C11:C1000000").Select
finalrow = Cells(Rows.Count, 3).End(xlUp).Row
For x = 11 To finalrow
    If Cells(x, 3).Interior.ColorIndex = 3 Then
        Cells(x, 6).FormulaR1C1 = "=VLOOKUP(R11C3:R1000000C3,Sheet2!R4C3:R1000000C4,2,0)"
        Cells(x, 6)=Cells(x, 6).Value
    End If 
Next x
End Sub