gpt4 book ai didi

vba - Excel-VBA 使用左侧的 vlookup 结果返回

转载 作者:行者123 更新时间:2023-12-04 21:55:31 25 4
gpt4 key购买 nike

我有一个基于简单查找的程序,它可以工作并返回正确的值。我想知道是否有一种方法可以合并 =LEFT 函数以使其返回 vlookup 结果的前两个字符。

    ub Store_Lookup_left_test()
Dim rw As Long, x As Range
Dim extwbk As Workbook, twb As Workbook

Set twb = ThisWorkbook
Set extwbk = Workbooks.Open("H:\****\****\Master Store Info.xlsm")
Set x = extwbk.Worksheets("Info Sheet").Range("A1:C999999")

With twb.Sheets("Sheet1")

For rw = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(rw, 10) = Application.VLookup(.Cells(rw, 1).Value2, x, 3, False)
Next rw
End With

所以类比 =Left(vlookup(a1,A1:C1,3,0),2) ,我可以做类似的事情吗 .cells(rw, 10) = application.left(application.vlookup(.cells(rw, 1).Value2, x, 3, False),2) ?

目前的vlookup结果是

UK Optical, or Irish Optical



我希望它是

UK, Ir

最佳答案

您可以使用 Left 直接在 VBA 中运行,但您需要检查 vlookup 是什么返回,因为如果没有匹配,它将返回一个错误 Left不能用。

' Get vlookup result as variant so no error occurs if not string
Dim lookupresult As Variant
lookupresult = Application.VLookup(.Cells(rw, 1).Value2, x, 3, False)
' Check if vlookup returned an error (no match found)
If IsError(lookupresult) Then
MsgBox "Error with vlookup, no match found"
Else
' Get Left of string, up to 2 characters.
.Cells(rw, 10) = Left(lookupresult, 2)
End If

关于vba - Excel-VBA 使用左侧的 vlookup 结果返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45632044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com