【问题标题】:Excel VBA Concatenate cell with loopExcel VBA用循环连接单元格
【发布时间】:2019-03-31 03:18:00
【问题描述】:

我下面的代码从它上面的单元格中按顺序生成下一个数字,当它被双击时,在 C 列的最后一个空白单元格中。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As 
Boolean)
Dim lastrow As Long
lastrow = Cells(Cells.Rows.Count, "C").End(xlUp).Row + 1
If Not Intersect(Target, Range("C:C")) Is Nothing Then
If Target.Address = Cells(lastrow, "C").Address Then
Application.EnableEvents = False
Cancel = True
Cells(lastrow, "C") = Cells(lastrow - 1, "C") + 1
Application.EnableEvents = True
End If
End If
End Sub

我想做的是在 D 列的同一行中为单元格添加一个简单的连接,在新生成的数字前面加上字母“TLD”。 我在这个网站上尝试了几个例子,但我没有取得太大的成功,因为我不太清楚如何将它包含在这段代码中,或者是否应该包含它?

因此,例如,单元格 C2 = 300000 单元格 D2 应读取 TLD300000。 我不想使用公式,因为我不知道随着时间的推移将使用多少行。 有任何想法吗? 谢谢 保罗

【问题讨论】:

    标签: excel vba for-loop concatenation


    【解决方案1】:

    添加一行

            ….
            Cells(lastrow, "C") = Cells(lastrow - 1, "C") + 1
            Cells(lastrow, "D") = "TLD" & Cells(lastrow - 1, "C") '<--- added line
    

    【讨论】:

    • 那么,它连接了上面单元格中的数字吗?所以,我双击一个新数字,即 C3 中的 300001,D3 读取 TLD300000
    • 那你为什么不测试一下呢?
    • 啊,我刚刚修改了代码以删除最后一行-1。所以它显示,Cells(lastrow, "D")= "TLD" & Cells(lastrow, "C")。这是一种享受!非常感谢。
    • 不客气。如果我的回答解决了您的问题,那么您可以考虑将其标记为已接受。谢谢
    • 细胞(lastrow, "D") = "TLD" & 细胞(lastrow, "C")
    【解决方案2】:

    试试下面的

    Dim c As Range
    For Each c In Range("C2:C" & Lastrow)
    If c.Value <> "" Then
    c.Value = c.Value & "TLD"
    End If
    Next c
    

    【讨论】:

    • 嗨 Joshua,我如何将它插入到我现有的代码中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多