首页 文章

将数据添加到单元格中的下拉列表中

提问于
浏览
0

我想在列L中使用列表Table1中的选项制作下拉单元格,并有机会通过下拉单元格向源Table1添加新项目 . 如果源列表在同一工作表上,以下代码可以正常工作 . 但我需要在另一张表上有一个源表 .

If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Columns(12)) Is Nothing Then
 If IsEmpty(Target) Then Exit Sub
   If WorksheetFunction.CountIf(Worksheets("Sheet2").Range("Table1"), Target) = 0 Then
      lReply = MsgBox("Do you want to add name  " & _
                     Target & " to the list", vbYesNo + vbQuestion)
      If lReply = vbYes Then
          Worksheets("Sheet2").Range("Table1").Cells(Range("Tabel1").Rows.Count + 1, 1) = Target
      End If
   End If
 End If

结束子

1 回答

  • 0

    请尝试以下方法 . 最终不确定你想要的是什么,但是这将检查你在表1列L中添加的项目,如果表1中没有,则将它们作为新行添加到表中 .

    注意:

    1)每次完全符合范围

    Worksheets("Sheet2").Range("Table1").Cells(Worksheets("Sheet2").Range("Table1").Range("Table1").Rows.Count + 1, 1)
    

    2)每次以相同的方式拼写表格,如Table1或Tabel1 .

    码:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        Dim lReply As String
    
        If Target.Cells.Count > 1 Then Exit Sub
    
        If Not Intersect(Target, Columns(12)) Is Nothing Then 'L
    
            If IsEmpty(Target) Then Exit Sub
    
            If WorksheetFunction.CountIf(Worksheets("Sheet2").Range("Table1"), Target) = 0 Then
    
                lReply = MsgBox("Do you want to add name  " & Target & " to the list", vbYesNo + vbQuestion)
    
                If lReply = vbYes Then
    
                    Worksheets("Sheet2").Range("Table1").Cells(Worksheets("Sheet2").Range("Table1").Range("Table1").Rows.Count + 1, 1) = Target
    
                End If
    
            End If
    
        End If
    
    End Sub
    

相关问题