0

问:创建一个宏,从表 2 中查找表 1 中的值

  1. 要在工作表 1 中查找第 11 行到第 1000000 行的“F”列中的值。
    • 在“C”列中查找值表 1,第 11 到 1000000 行条件“仅具有内部颜色索引 RED 的单元格”
    • Sheet 2 列“C & D”中的表格数组,第 4 行到第 1000000 行。
  2. 在工作表 1 中创建一个按钮并将此宏分配给该按钮。

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 并需要更多时间来执行,它无法创建按钮。

4

1 回答 1

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
于 2013-01-19T15:39:19.393 回答