使用下拉列表从表中复制粘贴值。

使用下拉列表从表中复制粘贴值。

我有一个名为 Ted_ID 的下拉列表,其中包含 ID,我想编写 vba 代码,表示如果用户从下拉列表中选择一个 ID,那么它将查看表格并找到相应的 Ted ID,然后将相应的值(corptax 实体名称)复制粘贴到它的右侧,比如说 G 列。

表格和下拉列表

答案1

我建议您使用以下 VBA 代码,它将帮助您在 INPUTBOX 中插入您选择的 ID,然后将其搜索到数据范围中,并在几行后将其复制粘贴。

Private Sub CommandButton1_Click()

Dim FirstAddress As String, cF As Range,RowsToCopy As String

ActiveSheet.Cells(186, 1).Activate

With ActiveSheet.Columns(1)

    Set cF = .Find(What:=InputBox("Enter ID Number", "Search ID"), _
                After:=ActiveCell, _
                LookIn:=xlFormulas, _
                LookAt:=xlPart, _
                SearchOrder:=xlByColumns, _
                SearchDirection:=xlNext, _
                MatchCase:=False, _
                SearchFormat:=False)


     If Not cF Is Nothing Then
        FirstAddress = cF.Address

        Do
               cF.EntireRow.Copy
               Sheets("Sheet1").Range("A" & Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 5).PasteSpecial xlPasteValues
               Set cF = .FindNext(cF)


            Loop While Not cF Is Nothing And cF.Address = FirstAddress

    End If
End With

End Sub

注意:请记住我的数据范围是 A186 到 D195。您需要根据数据范围在 VBA 代码中更改以下值。

  1. 在第三行找到 186,(其行号 A186),将这一行 Nu 替换为您的。

  2. 在第 4 行找到 .Column(1),它代表 A 列, 根据您的起始列值进行更改。

  3. 检查第 17 行并根据需要替换工作表名称,范围(“A”,将其替换为您的数据范围起始列名。

  4. 如果您想替换它,我使用 INPUTBOX 来代替 Dropdown。

笔记, 在将此代码作为解决方案发布在这里之前,我已经测试过它。

我相信您会发现该代码很有用。

答案2

您会考虑非 VBA 解决方案吗?

您需要一个 TED ID 列表作为下拉列表,并且您有一个实体名称列表,因此您可以将它们用作 VLOOKUP() 的查找表。以下屏幕截图 F3 中的公式为:

=VLOOKUP(D3,A2:B6,2)

在此处输入图片描述

相关内容