我有两列数字,它们在一起将是唯一的(复合键)。我想创建一个唯一的 ID 号(第三列),类似于 MS Access 使用主键的方式。我想在 VBA 中执行此操作,但我不知道如何执行此操作。
我的 Excel 中的 VBA 不太好,所以希望您能看到我已经开始尝试的内容。这可能是完全错误的......我不知道?
我不知道如何进行下一个串联,并且不确定如何正确地进入下一行。
Sub test2()
Dim var As Integer
Dim concat As String
concat = Range("E2").Value & Range("F2").Value
var = 1
'make d2 activecell
Range("D2").Select
Do Until concat = ""
'if the concat is the same as the row before we give it the same number
If concat = concat Then
var = var
Else
var = var + 1
End If
ActiveCell.Value = var
ActiveCell.Offset(0, 1).Select
'make the new concatination of the next row?
Loop
End Sub
感谢任何帮助,谢谢。
尝试一下下面的代码,我添加了一个为每个单元格执行的循环E
柱子。它检查 concat 值是否与上一行中的 concat 值相同,然后将 id 写入D
cell.
Sub Test2()
Dim Part1 As Range
Dim strConcat As String
Dim i As Long
i = 1
With ThisWorkbook.Worksheets("NAME OF YOUR SHEET")
For Each Part1 In .Range(.Cells(2, 5), .Cells(2, 5).End(xlDown))
strConcat = Part1 & Part1.Offset(0, 1)
If strConcat = Part1.Offset(-1, 0) & Part1.Offset(-1, 1) Then
Part1.Offset(0, -1).Value = i
Else
i = i + 1
Part1.Offset(0, -1).Value = i
End If
Next Part1
End With
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)