gpt4 book ai didi

excel - VLookUpFunction VBA - 不返回所需的值

转载 作者:行者123 更新时间:2023-12-03 03:17:03 26 4
gpt4 key购买 nike

我目前束手无策,似乎无法理解为什么简单的 vlookup 函数不起作用。

Sub Button3_Click()

A = Textbox1.Value
B = ActiveWorkbook.ActiveSheet.Range("A1:G20")

BaneOfMyExistence = Application.WorksheetFunction.VLookup(A, B, 5, False)

BaneOfMyExistence = Textbox2.Value

End Sub

我浏览了很多论坛,很多人似乎都遇到了 vlookup 功能的问题。不幸的是我似乎找不到适用的解决方案。

我希望宏找到与 textbox1 中的数字变量的匹配项(行号列在 A 列中),并将 textbox2 的值(也是数字)粘贴到 BaneofMyExistence 中。

我尝试了许多不同的方法/语法,这给我带来了许多不同的错误。但是,当前代码不会返回任何错误,也不会在指定单元格中返回任何值。

有人可以帮我吗?

最佳答案

您留下了很多未解答的问题,但我相信您正在尝试在一列真实数字中找到看起来像数字的文本。简单地说,99<>"99" .

您没有进行任何变量声明,因此所有变量都已隐式声明为变体。变体可以是真实的数字或文本或看起来像数字的文本。

A = Textbox1.Value

即使文本框中似乎有数字,这也会将字符串值放入 A 中。 Ia 字符串永远不会在真实数字列中匹配。

将 B 设置为您要查找的范围。您正在使用您所使用的语法创建一个二维变体数组。

使用 application.vlookup,您可以使用 IsError 测试“不匹配”。

您正在使用 Textbox2.Value 中的值覆盖 BaneOfMyExistence,我认为该值是零长度字符串。反转此操作,将 vlookup 中的值放入 Textbox2。

option explicit

Sub Button3_Click()

dim A as long, B as range, BaneOfMyExistence as variant

A = clng(Textbox1.Value)
SET B = ActiveWorkbook.ActiveSheet.Range("A1:A20")

BaneOfMyExistence = Application.match(A, B, 0)

if not iserror(BaneOfMyExistence) then
ActiveWorkbook.ActiveSheet.cells(BaneOfMyExistence, "E") = Textbox2.Value
else
ActiveWorkbook.ActiveSheet.cells(BaneOfMyExistence, "E") = "no match"
end if

End Sub

使用Option Explicit然后你会发现很多问题都消失了。

关于excel - VLookUpFunction VBA - 不返回所需的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52921041/

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