vlookup在多个页面上打破不知道为什么

问题描述 投票:0回答:2

我在“开始”页面上有一个命令按钮,想要在事务页面的同一页面上使用F13中的值进行查找,如果找到该值的副本行,则将其粘贴到工作表3上。

我在下面尝试了多种方式的最新尝试。

起始页 - F13中的查找值。交易页面 - 列A中的搜索范围Sheet3 - 我想放置结果的位置

事务表我把F13中的值放在A1中进行测试。所以它应该找到它。

它在A =应用程序中断...我知道有1004错误,不确定我是否做得对,但是放入一些代码以希望处理错误。

我尝试在a =应用程序行上方移动on错误,但它最终复制了起始页中的当前单元格并将其粘贴到sheet3中。

对不起,还有很多新的vba需要学习...任何帮助都会很棒!

Private Sub CommandButton7_Click()
Dim WR As String
Dim Lookup_Range As Range
Dim a As String




WR = Sheets("Start page").Range("F13").Value

Set Lookup_Range = Sheets("TransactionTable").Range("A1:A4000")


' vlookup

a = Application.WorksheetFunction.VLookup(Range("F13"), Worksheets("TransactionTable").Range("A1:A4000"), 1, False)
On Error GoTo IGotNothing:

If a = WR Then

Rows(ActiveCell.Row).Select

Selection.Copy


Sheets("Sheet3").Range("A1").Select
 Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    Exit Sub
 Else


  IGotNothing:
    If Err.Number = 1004 Then
    n = CVErr(xlErrNA)
    Resume Next
Else
    MsgBox ("No value found")
   End
End If


End If

End Sub
excel vba
2个回答
0
投票

您应该声明Dim a As Variant而不是Dim a As String并使用Application.VLookup而不是WorksheetFunction.VLookup。这种方法的优点是如果VLookup返回错误,它也将存储在变量a中,否则代码将正常执行。如果VLookup返回错误,错误处理将处理它。

试试这样......

Dim a As Variant
a = Application.VLookup(Range("F13"), Worksheets("TransactionTable").Range("A1:A4000"), 1, False)

0
投票

谢谢大家为我学到的所有帮助!

过了一会儿,我决定尝试一个不同的方向,看起来我发现了一些可行的方法。

我基本上用了一个数。再次感谢所有贡献的人!

 Private Sub CommandButton11_Click()

  a = Worksheets("TransactionTable").Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To a
 If Worksheets("TransactionTable").Cells(i, 1).Value = Worksheets("Start page").Range("F13").Value Then
 Worksheets("TransactionTable").Rows(i).Copy
 Worksheets("Sheet3").Activate
 b = Worksheets("Sheet3").Cells(Rows.Count, 1).End(xlUp).Row
 Worksheets("Sheet3").Cells(b + 1, 1).Select
 ActiveSheet.Paste
 Worksheets("Start page").Activate

 Else
 MsgBox "Workorder does not exist"

 End If


  Next
  Application.CutCopyMode = False
  ThisWorkbook.Worksheets("Start page").Cells(1.1).Select

   End Sub
© www.soinside.com 2019 - 2024. All rights reserved.