EXCEL如何快速选取某一列中的名字到另外的单元格显示?

或者用什么公式能解决这个问题。

第1个回答  2020-07-10
也就是说,鼠标选定H列姓名,自动写入到C列某行一个单元格里,且所有姓名中间用逗号隔开?
复制这个VBA即可
Sub 姓名()
Dim I
x = Range("C65536").End(xlUp).Row
For I = 2 To Range("H65536").End(xlUp).Row

Cells(x + 1, "C") = Cells(x + 1, "C") & "," & Cells(I, "H")
Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim tr, tc
tr = Target.Row
tc = Target.Column
If tr >= 2 And tc = 8 Then
姓名
End If
End Sub追问

是的!相当于H列当中的每一个名字是一个按钮,选择张三时就写入到C列当中某一单元格,并在后面加入一个逗号。

追答

不需要按钮,都给你写好了

只要单击H列的任何一个姓名单元格

,就自动写入

追问

大神,点击后三个名字全部自动写入了。我需要的是要哪个名字就点哪个,比如,只要张三和李四,就点这两个名字,也自动写入这两个。还有这段代码点击写入的结果在首个名字前面也会有个逗号。

追答

关键是,假设你点了 张三,写入C4单元格,你又点了 李四,这个 李四是写入C4,还是C5?
如何来区别,你点的 姓名是 写入同1个单元格?还是下一个空的单元格 ?

追问

大神,是写入C4单元格,也就是同一个单元格。因为出差人员不一定是一个人,基本都是两个或两个以上人员!

追答

我是问:单击的姓名,都写入同一个单元格?
不会写入第2个单元格?
也就是说:H列单击的姓名,无论多少个,都写入C列固定一个单元格?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tr, tc
tr = Target.Row
tc = Target.Column
If tr >= 2 And tc = 8 Then
Cells(4, "C") = Cells(4, "C") & "," & Cells(tr, "H")
End If
End Sub

本回答被提问者和网友采纳
第2个回答  2020-07-10
把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删),excel样表文件(尽量详细说明现状和目标效果)作为附件发到yqch134@163.com帮你看下
相似回答