Excel 如何编写代码以单击&;选择多个值并输入一个以逗号分隔的单元格

Excel 如何编写代码以单击&;选择多个值并输入一个以逗号分隔的单元格,excel,vba,Excel,Vba,我试图在excel中编写一个代码,允许我单击并选择多个值,然后用逗号分隔输入到一个单元格中 附件是我希望通过单击多个值并将其输入Excel工作表中的单元格,在黄色框中选择最终结果的屏幕截图 我试图将下面的代码起草到Sheet1中,但它不起作用:- Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.CountLarge <> 1 Then Exit Sub If T

我试图在excel中编写一个代码,允许我单击并选择多个值,然后用逗号分隔输入到一个单元格中

附件是我希望通过单击多个值并将其输入Excel工作表中的单元格,在黄色框中选择最终结果的屏幕截图

我试图将下面的代码起草到Sheet1中,但它不起作用:-

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.CountLarge <> 1 Then Exit Sub
    If Target.Row < 10 Or Target.Row > 101 Then Exit Sub
    If Intersect(Me.Range("C:C,E:E, G:G"), Target) Is Nothing Then Exit Sub  
    Me.Cells(7, Target.Column).Value = Target.Value
    Active.Cell= Range("E10")& Range("E11")& Range("E12")& Range("E13") & Range ("E14") & Range ("E15") & Range("E16')& (Range"E17")  
End Sub
Private子工作表\u selection更改(ByVal目标作为范围)
如果Target.Cells.CountLarge 1,则退出Sub
如果Target.Row<10或Target.Row>101,则退出Sub
如果Intersect(Me.Range(“C:C,E:E,G:G”),Target)为空,则退出Sub
Me.Cells(7,Target.Column).Value=Target.Value
有源。电池=范围(“E10”)&范围(“E11”)&范围(“E12”)&范围(“E13”)&范围(“E14”)&范围(“E15”)&范围(“E16”)和范围(“E17”)
端接头
我尝试了,但无法将多项选择放在一个单元格中;在多项选择的黄色框中,我也无法获得逗号分隔。 如果你能帮我改正错误,我将不胜感激


非常感谢。

您的意思是要单击(然后选择)吗每个单元格都应该添加该单元格?代码中的第一行检查是否选择了多个单元格,如果选择了,则忽略该单元格。因此,我假设只需单击该单元格即可添加该单元格?我不太理解最后一行的逻辑。有人选择某个单元格后,是否希望宏选择范围E10-17

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Cells.Count <> 1 Then Exit Sub
    If Target.Row < 10 Or Target.Row > 101 Then Exit Sub
    If Intersect(Me.Range("C:C,E:E, G:G"), Target) Is Nothing Then Exit Sub


    If Me.Cells(7, Target.Column).Value = "" Then
        Me.Cells(7, Target.Column).Value = Target.Value
    Else
        Me.Cells(7, Target.Column).Value = Me.Cells(7, Target.Column).Value & ", " & Target.Value
    End If

    'Really?
    'Range("E10:E17").Select

End Sub
Private子工作表\u selection更改(ByVal目标作为范围)
如果Target.Cells.Count为1,则退出Sub
如果Target.Row<10或Target.Row>101,则退出Sub
如果Intersect(Me.Range(“C:C,E:E,G:G”),Target)为空,则退出Sub
如果Me.Cells(7,Target.Column).Value=”“,则
Me.Cells(7,Target.Column).Value=Target.Value
其他的
Me.Cells(7,Target.Column).Value=Me.Cells(7,Target.Column.Value&“,”&Target.Value
如果结束
”“真的吗?
'范围(“E10:E17”)。选择
端接头

我添加了一个if语句,以在清除黄色框后添加第一个条目。似乎对我有效。

收件人:Czeskleba_非常感谢您的回复。您编写的代码非常有效。基于代码,所有3列(在C、E和G处)将在第7行生成带逗号的多个值。但是,如果我希望在单元格E7的列E中生成带逗号的多个值,并且根据我上一篇文章的屏幕截图,仅在单元格C7和G7中生成单个值,该怎么办?我等待您的建议。谢谢。收件人:Czeskleba_u?没问题,我已经在stackoverflow中找到了关于上述问题的第二个查询的答案由2019-02-07年的Urderboy于[。他的答案是将这两个事件转化为子过程,然后创建一个调用这两个子过程的主事件。因此,我将Urderboy和您的代码结合起来。很有效!再次感谢您。来自Tan LC 2020-02-10