excel - 在 VBA 中使用 VLookup
问题描述
我目前正在处理电子表格并想使用 vlookup,但如果它是通过 VBA 更喜欢。
我附上了两张表格的截图,所以你们可以直观地看到我想要做什么。
本质上,我试图从工作表 IW38 列 K 中提取“优先级”并将其放在工作表“IW47”列 R 上,但使用订单号作为匹配信息。订单号在表 IW47 的“E”列和表 IW47 的“A”列中。
以下是我尝试使用的当前宏:
Sub PriorityNUM()
'Variables----------------------------------------
'Defining WorkBook
Dim wb As Workbook
'Defining Sheets----------------------------------------------
'Working Asset Sheet
Dim IW47ws As Worksheet
'Sheet for Parts List Submission
Dim IW38ws As Worksheet
'Setting Worksheets
Set IW47ws = Sheets("IW47")
Set IW38ws = Sheets("IW38")
'Defigning Ranges within Worksheets----------------------------
Dim IW38rng As Range
'Setting Ranges within Submit Worksheets-------------------
Set IW38rng = IW38ws.Range("A:Z")
'Defining the Last Cell in Each Task Column----------------
Dim IW47last As Long
'Assigning Values to Last Row Variables
IW47last = IW47ws.Range("E" & Rows.Count).End(xlUp).Row
'Updating Drawings Identified---------------------------------------------------
Dim PriorityCell As Range
Dim PriorityLookup As String
For Each PriorityCell In IW47ws.Range("R:R")
If IsEmpty(DICell.Offset(0, -13).Value) Then
Exit For
End If
On Error Resume Next
PriorityLookup = WorksheetFunction.VLookup(PriorityCell.Offset(0, -13), IW38rng, 11, False)
If Err = 0 Then
PriorityCell.Value = PriorityLookup
Else
Err.Clear
End If
On Error GoTo 0
Next PriorityCell
End Sub
任何帮助将不胜感激。
谢谢,胡安
解决方案
可读性
OP,您的代码可以像下面这样重组。我还使用了一些简写变量来使事情变得更容易。理想情况下,您的变量名称应该简洁(易于阅读且易于键入)。可读性在故障排除中大有帮助。
看到后告诉我,我可以删除
Sub PNum()
Dim ws47 As Worksheet: Set ws47 = ThisWorkbook.Sheets("IW47")
Dim ws38 As Worksheet: Set ws38 = ThisWorkbook.Sheets("IW38")
Dim Arr As Range: Set Arr = ws38.Range("A:K")
Dim LR As Long, MyCell As Range, Priority As String
LR = ws47.Range("E" & ws47.Rows.Count).End(xlUp).Row
For Each MyCell In ws47.Range("R2:R" & LR)
If IsEmpty(MyCell.Offset(-13)) Then Exit Sub
On Error Resume Next
Priority = WorksheetFunction.VLookup(MyCell.Offset(, -13), Arr, 11, 0)
If Err = 0 Then
MyCell = Priority
Else
Err.Clear
End If
On Error GoTo 0
Next MyCell
End Sub
推荐阅读
- apache-kafka - Kafka 中的内部和外部通信
- c++ - 在 OpenCV 4 (c++) 中设置颜色限制轴,类似于 Matlab 的 CAXIS
- c++ - 如何使用 C++ 独立 ASIO 库
- angular - Angular 6 搜索引擎优化路由
- git - 使用 Git 搜索特定用户修改的给定文件夹中的文件
- php - seo 友好的 url 使用西里尔字符 х 字符,它总是得到 404。如何修复它?
- python - 我可以在 MacOS 上使用 Keras ImageDataGenerator().flow_from_directory 跳过文件吗?
- scala - 斯卡拉
.reduce 泛型类型的奇怪行为 - java - Spring Boot 测试 HttpMessageNotReadableException
- python - 如何在 ndarray 中找到最常见的元素