繁体   English   中英

如何使用VBA在Excel中将后缀添加到特定数据

[英]How to add the suffix to the particular data in excel using VBA

我维护了一个工作表,其中包含特定产品的参数。

在这里,当我单击“添加”按钮时,“控制电源变压器”的所有内容都应复制并粘贴到下面。

在这里,我成功复制了完整的产品详细信息,并使用如下所述的vba代码在下面粘贴:

Dim WbEPC As Workbook, _
WbCPT As Workbook, _
WsEPC As Worksheet, _
WsCPT As Worksheet, _
FirstAddress As String, _
WriteRow As Long, _
cF As Range, _
num As String

Set WbEPC = Workbooks("EPC 1.xlsm")
Set WbCPT = Workbooks("Control Power Transformers.xlsm")
Set WsEPC = WbEPC.Sheets("Sheet1")
Set WsCPT = WbCPT.Sheets("Sheet1")


Dim b As Object, RowNumber As Integer
Set b = ActiveSheet.Shapes("CommandButton21")
With b.TopLeftCell
    RowNumber = .Row
End With


 Rows(RowNumber + 1 & ":" & RowNumber + 1).Select
 Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

With WsEPC
.Activate
With .Range("A1:A10000")

Set cF = .Find(what:="CTPT", _
    lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

            num = cF.Address

            WsEPC.Range(cF.Offset(-1, 0), cF.Offset(3, 3).End(xlDown)).Copy

            WsEPC.Range("A" & RowNumber + 1).Select


                Selection.Insert Shift:=xlDown
                Application.CutCopyMode = False

    End With
 End With

 MsgBox " Successfully added the product to EPC"

上面的代码成功复制了下面的上述产品详细信息,如下所示

在此处输入图片说明

这里“ CTPT1”是产品CONTROL POWER TRANSFORMERS的唯一产品ID,当我单击ADD时,正在复制相同的ID,而不是复制CTPT1(如图(A22)所示),我希望它自动使自己成为“ CTPT2”单击“添加”按钮时,同样明智的做法是,如果再次单击“添加”按钮,则应变为“ CTPT3”,依此类推。

谁能告诉我如何使用excel VBA自动生成唯一ID。 任何帮助表示赞赏!

这应该可以解决问题:

Dim WbEPC As Workbook, _
    WbCPT As Workbook, _
    WsEPC As Worksheet, _
    WsCPT As Worksheet, _
    StringToSearch As String, _
    ButtonRow As Long, _
    WriteRow As Long, _
    cF As Range


Set WbEPC = Workbooks("EPC 1.xlsm")
Set WbCPT = Workbooks("Control Power Transformers.xlsm")
Set WsEPC = WbEPC.Sheets("Sheet1")
Set WsCPT = WbCPT.Sheets("Sheet1")
StringToSearch = "CTPT"

With WsEPC
    .Activate
    ButtonRow = .Shapes("CommandButton21").TopLeftCell.Row
    .Rows(ButtonRow + 1 & ":" & ButtonRow + 1).Insert Shift:=xlDown, _
                                                    CopyOrigin:=xlFormatFromLeftOrAbove
    With .Columns(1)
        Set cF = .Find(what:=StringToSearch, _
                        lookat:=xlPart, _
                        searchorder:=xlByRows, _
                        searchdirection:=xlNext, _
                        MatchCase:=False, _
                        SearchFormat:=False)
        WsEPC.Range(cF.Offset(-1, 0), cF.Offset(3, 3).End(xlDown)).Copy
        WriteRow = WsEPC.Range("B" & WsEPC.Rows.Count).End(xlUp).Row + 2
        WsEPC.Range("A" & WriteRow).Insert Shift:=xlDown
        Application.CutCopyMode = False

        cF.Value = CStr(StringToSearch & CLng(Replace(cF.Value, StringToSearch, vbNullString)) + 1)
    End With
End With

MsgBox " Successfully added the product to EPC"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM