【问题标题】:Copying rows into one cell VBA [duplicate]将行复制到一个单元格VBA [重复]
【发布时间】:2015-06-02 11:33:09
【问题描述】:

我有一个工作表,其中只有一列中有各种值,例如:

A
B
C
D
E
F
...

我需要编写一个简单的代码,将所有这些放在一个单元格(例如 D2)中,并且我希望该单元格有一个值:

A;B;C;D;E;F;...

【问题讨论】:

  • 到目前为止你有没有尝试过?您想要基于 Excel 的解决方案还是基于 VBA 的解决方案?您是否在此 site 中搜索过类似的解决方案?您在本页右下角看到相关问题了吗?
  • Excel解决方案很简单,我用了很长时间,但现在不能用(列表正在改变),需要升级我的代码。我尝试通过 SQL base 编写它,但我觉得它绝对没用。我只写了有趣的recordNumber = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

标签: excel vba row


【解决方案1】:

在一个简单的形式中,以下 VBA 宏可以完成这项工作(假设您在 Excel 工作表的 A 列中有要连接并将结果放在单元格 D2 中的值):

Sub ConcatenateCells()
Dim i As Integer
Dim count As Integer
Dim s As String
count = Cells(Rows.count, "A").End(xlUp).Row
For i = 1 To count
    s = s & Cells(i, 1) & ";"
Next
Range("D2") = s
End Sub

您可以根据自己的目的对其进行修改。此外,您可以通过添加条件来排除空单元格:

If Cells(i, 1).Value <> "" Then s = s & Cells(i, 1).Value & ";"

希望这可能会有所帮助。最好的问候,

【讨论】:

  • 和我想的一样简单...谢谢 :)
  • 不客气!祝你的项目好运。最好的问候,
  • 一个问题,字符串s我只有;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,不应该是Cells(i, 1).Value这样的东西吗?
  • 它应该双向工作(值是默认属性)。确保将文本放在正确的列 (A) 中。最好的问候,
  • AlexBell 请在发布答案之前检查相关问题。
【解决方案2】:

如果您使用 Google 搜索过,您可能会偶然发现 this link,这是使用 Excel 公式的一种非常时髦的方式。

=CONCATENATE(TRANSPOSE(A1:A6 & ";"))

您只需要确保 TRANSPOSE 函数之前使用 F9 执行。

但是,您也可以随时使用 VBA 用户定义函数来完成它。

【讨论】:

  • 一个非常好的技巧!值得记住。
猜你喜欢
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多