如何编写包含来自源单元格的单元格格式的 VBA Vlookup?
How to code VBA Vlookup that includes cell formatting from the source cell?
我正在寻找一种方法来保留我使用以下函数对其执行 vlookup 的单元格的源格式:
On Error Resume Next
With aSheet
For i = FindEmptyRow To FindRow2
.Range("N" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 14, False)
.Range("O" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 15, False)
.Range("P" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 16, False)
.Range("Q" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 17, False)
.Range("R" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 18, False)
.Range("S" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 19, False)
.Range("T" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 20, False)
.Range("U" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 21, False)
.Range("V" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 22, False)
.Range("W" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 23, False)
Next i
End With
我看到其他人也在为这个特定问题而苦苦挣扎,但我一直无法找到解决我的问题的答案。
有什么方法可以使用 PasteSpecial Paste:=xlPasteFormats- 来保留单元格格式?
我尝试将 vlookup 公式存储为字符串并将其直接粘贴到每个单元格中,但我不太了解它在循环中的工作方式。
是否有比 VLOOKUP 更适合这个特定问题的公式?
如果您需要问题的更多背景知识或更多代码,请告诉我。
希望有人能够帮助我!
此致,
马格努斯
这使用 MATCH 找到正确的行,然后复制并粘贴单元格。
With aSheet
Dim mtchrw As Long
For i = FindEmptyRow To FindRow2
mtchrw = 0
On Error Resume Next
mtchrw = Application.WorksheetFunction.Match(.Range("A" & i), Sheets("data_temp").Range("A:A"), 0)
On Error GoTo 0
If mtchrw > 0 then
Sheets("data_temp").Range("N" & mtchrw & ":W" & mtchrw).Copy .Range("N" & I & ":W" & i)
End If
Next i
End With
我正在寻找一种方法来保留我使用以下函数对其执行 vlookup 的单元格的源格式:
On Error Resume Next
With aSheet
For i = FindEmptyRow To FindRow2
.Range("N" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 14, False)
.Range("O" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 15, False)
.Range("P" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 16, False)
.Range("Q" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 17, False)
.Range("R" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 18, False)
.Range("S" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 19, False)
.Range("T" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 20, False)
.Range("U" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 21, False)
.Range("V" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 22, False)
.Range("W" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("data_temp").Range("A:W"), 23, False)
Next i
End With
我看到其他人也在为这个特定问题而苦苦挣扎,但我一直无法找到解决我的问题的答案。
有什么方法可以使用 PasteSpecial Paste:=xlPasteFormats- 来保留单元格格式?
我尝试将 vlookup 公式存储为字符串并将其直接粘贴到每个单元格中,但我不太了解它在循环中的工作方式。
是否有比 VLOOKUP 更适合这个特定问题的公式?
如果您需要问题的更多背景知识或更多代码,请告诉我。
希望有人能够帮助我!
此致, 马格努斯
这使用 MATCH 找到正确的行,然后复制并粘贴单元格。
With aSheet
Dim mtchrw As Long
For i = FindEmptyRow To FindRow2
mtchrw = 0
On Error Resume Next
mtchrw = Application.WorksheetFunction.Match(.Range("A" & i), Sheets("data_temp").Range("A:A"), 0)
On Error GoTo 0
If mtchrw > 0 then
Sheets("data_temp").Range("N" & mtchrw & ":W" & mtchrw).Copy .Range("N" & I & ":W" & i)
End If
Next i
End With