-1
我正在練習VBA,我需要一些幫助/更正我的代碼。 在這個任務中,我創建了一個搜索工具,它從組合框中查找每個工作表中的選定值。每個結果都列在第一頁上。如何使用.Find和Offset調試VBA代碼?
問題:
在代碼我在一定範圍
rFound
定義的.Find
方法。在每個工作表上,搜索值位於列D
。我想將B
列中的行復制到E
。我評論過一次嘗試,我是如何嘗試選擇該範圍的,並使用偏移量,但我收到錯誤消息。爲什麼以及如何解決這個問題?當我想粘貼(列表)結果我希望它從第1頁第3行列開始
K
。運行代碼後,它會選擇正確的目標,但不會粘貼任何內容。如何解決這個問題?
我也做了一些嘗試每個搜索結果後,文檔的頁眉複製,但我評論他們,請忽略與getOwner
線。
Dim ws As Worksheet, OutputWs As Worksheet, wsLists As Worksheet
Dim rFound As Range ', getOwner As Range
Dim strName As String
Dim count As Long, LastRow As Long
Dim IsValueFound As Boolean
'Dim cboSelectName As ComboBox
Dim a As String
IsValueFound = False
Set OutputWs = Worksheets("Teszt") '---->change the sheet name as required
LastRow = OutputWs.Cells(Rows.count, "A").End(xlUp).Row
Set wsLists = Worksheets("Lists")
a = ComboBox1.Value
On Error Resume Next
strName = a
If strName = "" Then Exit Sub
For Each ws In Worksheets
If ws.Name <> "Output" Then
With ws.UsedRange
Set rFound = .Find(What:=strName, After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole)
If Not rFound Is Nothing Then
Application.Goto rFound, True
IsValueFound = True
'MsgBox rFound.Row
rFound.EntireRow.Copy
'Rfound keres - rFound.Range(rFound(Offset(-2,")),rFound.Offset(1,"")).Copy ' ---> This is a suggestion
OutputWs.Cells(LastRow + 2, 11).PasteSpecial xlPasteAll
'getOwner.Range(K2, R2).Copy ' attempt to copy the header for each search result
'getOwner.Cells(LastRow + 1, 6).Paste
Application.CutCopyMode = False
LastRow = LastRow + 1
End If
End With
End If
Next ws
On Error GoTo 0
If IsValueFound Then
OutputWs.Select
MsgBox "Search Complete!"
Else
MsgBox "Value not found"
End If
我不完全確定你在拷貝哪裏,但是將'rFound'的行的單元格'B:E'複製到'OutputWs'的列'K'將會是'Application.Intersect(rFound.EntireRow ,rFound.Worksheet.Range(「B:E」))。複製OutputWs.Cells(LastRow + 2,「K」)'。或者'rFound.Worksheet.Range(rFound.EntireRow.Cells(1,「B」),rFound.EntireRow.Cells(1,「E」))複製OutputWs.Cells(LastRow + 2,「K」)'。或'rFound.EntireRow.Cells(1,「B」)。Resize(1,4).Copy OutputWs.Cells(LastRow + 2,「K」)'。 – GSerg
最後一個工作 rFound.EntireRow.Cells(1,「B」)。Resize(1,4).Copy 不幸的是,搜索不是...你能說出爲什麼代碼不搜索下拉列表值?在我的Excel表中,我想列出每個工作表上出現的所有名稱,並從下拉列表中選擇這些名稱。我在第2頁的每一行中創建了一個像4個相同名稱的示例。當我運行代碼時,它只顯示第一個結果。這是爲什麼? –
他們都在工作,完全一樣。 – GSerg