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

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

在这里,当我点击添加button,控制功率变压器的所有内容都应该被复制,并且应该粘贴在下面。

在这里,我成功地复制了整个产品的详细信息,并使用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”是产品控制电源变压器的唯一产品ID,当我点击ADD时,同样的ID正在复制,而不是复制CTPT1,如图(A22)所示,我想让它自动变成“CTPT2”当单击添加button时,如果再次点击添加button,它应该变成“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"