0

实际上我没有任何特定的数据可供参考,只是想知道是否可以通过单击活动工作簿中搜索框中的选定行将数据导出到另一个工作簿(无论是打开的还是关闭的)。

假设在活动工作簿搜索框中找到的数据位于第 7 行,然后单击它(在搜索框中),数据将导出到另一个工作簿。不需要导出所有数据,可能只需要在 Cell D7、F7 和 K7 中导出。目标工作簿将填充导出到 B4(D7)、G8(F7) 和 L9(K7) 的数据。

可以使用 VBA 代码完成吗?也许必须将用户窗体创建为“查找和替换”框?也许还有另一种方法可以做到这一点?如果您接受此挑战并祝您好运,请提前非常感谢您。

邮政编码在这里:

4

2 回答 2

0
Private Sub ListBox_Results_Click()
Dim strAddress As String
Dim strSheet As String
Dim strCell As String
Dim l As Long
Dim lLastRow As Long
Const sRESULTS As String = "Results Sheet" 
For l = 0 To ListBox_Results.ListCount
If ListBox_Results.Selected(l) = True Then
strAddress = ListBox_Results.List(l, 1)
strSheet = Replace(Mid(strAddress, 1, InStr(1, strAddress, "!") - 1), "'", "")
Worksheets(strSheet).Select
Worksheets(strSheet).Range(strAddress).Select
With Worksheets(sRESULTS)
lLastRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & lLastRow).Value = Worksheets(strSheet).Range(strAddress).Value
.Range("B" & lLastRow).Value = strAddress
.Range("C" & lLastRow).Value = Now
End With
GoTo EndLoop
End If
Next l
EndLoop:
End Sub
于 2019-12-04T10:54:56.780 回答
0

是的,它可以使用 VBA 来完成。这可以让你开始。

例子

此示例在第一个工作表上查找范围 A1:A500 中包含值 2 的所有单元格,并将其更改为 5。

With Worksheets(1).Range("a1:a500") 
    Set c = .Find(2, lookin:=xlValues) 
    If Not c Is Nothing Then 
        firstAddress = c.Address 
        Do 
            c.Value = 5 
            Set c = .FindNext(c) 
        Loop While Not c Is Nothing
    End If 
End With

在此处查找来源和更多信息:https ://docs.microsoft.com/en-us/office/vba/api/excel.range.find

于 2019-11-21T11:53:38.447 回答