针对其他工作表中的键列复制数据。 (尝试做 vlookup 在 VBA 中不起作用)
Copying data against a key column from other worksheet. (Trying to do as vlookup is not working in VBA)
我希望代码使用我可用的键数据并在下一个 sheet 中交叉引用,以根据 sheet 中的相同键从下一列获取数据。
我曾尝试使用 VLOOKUP,但虽然它手动工作正常,但在宏中使用时不起作用。
请参考以下代码:
因此,为了获得结果,我尝试通过对我可用的数据列使用循环来搜索数据。
Sheets("Details").Select
Dim myval, strr As String
Dim cell As Range
Dim i, j, k As Integer
j = 3
i = ActiveWorkbook.Worksheets("Details").Range("A1",
Worksheets("Details").Range("A1").End(xlDown)).Rows.Count
Sheets("Pd Details").Select
Do While Cells(j, 1).Value <> ""
myval = Cells(j, 1).Value
For k = 3 To i
Sheets("Details").Select
If myval = Cells(k, 1).Value Then
strr = Cells(k, 2).Value
Sheets("Pd Details").Select
Cells(j, 4).Value = strr
Exit For
End If
Next
Sheets("Pd Details").Select
j = j + 1
Loop
我希望输出作为键的搜索,并根据具有数据转储的数据 sheet 中第 4 列中的键打印结果。
Details sheet:
Pd Details sheet:
Resulting Pd Details sheet:
如何在 VBA 中使用 VLookUp,如下所示,这将获取 PD 详细信息工作表中的最后一行,然后使用 Vlookup 获得所需的结果,然后删除公式,使其仅保留值.
(我已确保删除任何 Select 语句,因为这些语句只会减慢您的代码速度)
Sub Test()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim wsDetails As Worksheet: Set wsDetails = wb.Worksheets("Details")
Dim wsPDDetails As Worksheet: Set wsPDDetails = wb.Worksheets("Pd Details")
'declare and set the worksheets
Dim LastRow As Long
LastRow = wsPDDetails.Cells(wsPDDetails.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A on the PD Details sheet
wsPDDetails.Range("D1:D" & LastRow).FormulaR1C1 = "=VLOOKUP(RC[-3],Details!C[-3]:C,2,FALSE)"
'use the Vlookup formula
wsPDDetails.Range("D1:D" & LastRow).Value = wsPDDetails.Range("D1:D" & LastRow).Value
'convert the results from the formula to values and remove the formula itself.
End Sub
我希望代码使用我可用的键数据并在下一个 sheet 中交叉引用,以根据 sheet 中的相同键从下一列获取数据。 我曾尝试使用 VLOOKUP,但虽然它手动工作正常,但在宏中使用时不起作用。 请参考以下代码:
因此,为了获得结果,我尝试通过对我可用的数据列使用循环来搜索数据。
Sheets("Details").Select
Dim myval, strr As String
Dim cell As Range
Dim i, j, k As Integer
j = 3
i = ActiveWorkbook.Worksheets("Details").Range("A1",
Worksheets("Details").Range("A1").End(xlDown)).Rows.Count
Sheets("Pd Details").Select
Do While Cells(j, 1).Value <> ""
myval = Cells(j, 1).Value
For k = 3 To i
Sheets("Details").Select
If myval = Cells(k, 1).Value Then
strr = Cells(k, 2).Value
Sheets("Pd Details").Select
Cells(j, 4).Value = strr
Exit For
End If
Next
Sheets("Pd Details").Select
j = j + 1
Loop
我希望输出作为键的搜索,并根据具有数据转储的数据 sheet 中第 4 列中的键打印结果。
Details sheet:
Pd Details sheet:
Resulting Pd Details sheet:
如何在 VBA 中使用 VLookUp,如下所示,这将获取 PD 详细信息工作表中的最后一行,然后使用 Vlookup 获得所需的结果,然后删除公式,使其仅保留值.
(我已确保删除任何 Select 语句,因为这些语句只会减慢您的代码速度)
Sub Test()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim wsDetails As Worksheet: Set wsDetails = wb.Worksheets("Details")
Dim wsPDDetails As Worksheet: Set wsPDDetails = wb.Worksheets("Pd Details")
'declare and set the worksheets
Dim LastRow As Long
LastRow = wsPDDetails.Cells(wsPDDetails.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A on the PD Details sheet
wsPDDetails.Range("D1:D" & LastRow).FormulaR1C1 = "=VLOOKUP(RC[-3],Details!C[-3]:C,2,FALSE)"
'use the Vlookup formula
wsPDDetails.Range("D1:D" & LastRow).Value = wsPDDetails.Range("D1:D" & LastRow).Value
'convert the results from the formula to values and remove the formula itself.
End Sub