VBA-在excel中排列数据值
抱歉,我是VBA新手。我已经使用该网站,以hep与一个问题,我有匹配的2列数据VBA-在excel中排列数据值,excel,vba,Excel,Vba,抱歉,我是VBA新手。我已经使用该网站,以hep与一个问题,我有匹配的2列数据 IP26 5BN IP26 5BN IP26 5BN IP26 5DB IP26 5DB IP26 5DB IP26 5EL IP26 5EL IP26 5ET IP26 5EL IP26 5ET IP26 5ET IP26 5HN IP26 5ET IP26 5HR IP26 5HN IP26 5HR IP26 5HR IP26 5JA IP26 5JA
IP26 5BN IP26 5BN
IP26 5BN IP26 5DB
IP26 5DB IP26 5DB
IP26 5EL IP26 5EL
IP26 5ET IP26 5EL
IP26 5ET IP26 5ET
IP26 5HN IP26 5ET
IP26 5HR IP26 5HN
IP26 5HR IP26 5HR
IP26 5JA IP26 5JA
IP26 5JA IP26 5JA
IP26 5NJ IP26 5NJ
IP27 0DJ IP27 0DJ
IP27 0DZ IP27 0DZ
IP27 0ER IP27 0ER
IP27 0JN IP27 0JN
项目可以多次出现在A列和B列中,我希望将A列中的任何项目与B列中的匹配元素对齐,反之亦然,并在有额外“相同”值时在A和B列中插入一个空行
我必须这样做
Sub Expand()
Dim first_col As Range
Dim second_col As Range
Dim row As Integer
Set first_col = Range("A1:A17")
Set second_col = Range("B1:B17")
For row = 1 To second_col.Rows.Count
If (first_col.Cells(row, 1).Value = second_col.Cells(row, 1).Value Or second_col.Cells(row, 1).Value = first_col.Cells(row, 1).Value) Then
End If
If first_col.Cells(row, 1).Value <> second_col.Cells(row, 1).Value Then
second_col.Cells(row, 1).Insert shift:=xlDown
ElseIf first_col.Cells(row, 1).Value = second_col.Cells(row, 1).Offset(1, 0).Value Then
'// code to insert the row
first_col.Cells(row, 1).Insert shift:=xlDown
End If
Next row
End Sub
子扩展()
变暗第一列作为范围
变暗第二列作为范围
将行设置为整数
设置第一列=范围(“A1:A17”)
设置第二列=范围(“B1:B17”)
对于行=1到第二列行数
如果(第一列单元格(行,1).Value=第二列单元格(行,1).Value或第二列单元格(行,1).Value=第一列单元格(行,1).Value),则
如果结束
如果第一列单元格(行,1)。值第二列单元格(行,1)。值,则
第二列单元格(第1行)。插入移位:=xlDown
ElseIf第一列单元格(第1行)。值=第二列单元格(第1行)。偏移量(1,0)。然后值
'//插入行的代码
第一列单元格(第1行)。插入移位:=xlDown
如果结束
下一排
端接头
但是现在发生的事情是,第一个if在我认为应该返回“true”时并不总是返回“true”,因此当有重复项时,排列会向下一部分,或者它们与最后一行对齐
有什么建议吗?如果块为空,您的第一个
你的意思是这样做吗
For Row = 1 To second_col.Rows.Count
If (first_col.Cells(Row, 1).Value = second_col.Cells(Row, 1).Value Or second_col.Cells(Row, 1).Value = first_col.Cells(Row, 1).Value) Then
'End If <-- Remove this
If first_col.Cells(Row, 1).Value <> second_col.Cells(Row, 1).Value Then
second_col.Cells(Row, 1).Insert shift:=xlDown
ElseIf first_col.Cells(Row, 1).Value = second_col.Cells(Row, 1).Offset(1, 0).Value Then
'// code to insert the row
first_col.Cells(Row, 1).Insert shift:=xlDown
End If '<-- Add this
End If
Next Row
行=1到第二列行数的
如果(第一列单元格(行,1).Value=第二列单元格(行,1).Value或第二列单元格(行,1).Value=第一列单元格(行,1).Value),则
如果我不完全理解你的问题,就结束。但我假设您希望在活动单元格下方插入新行。
我想这可能对你有帮助
ActiveCell.Offset(1).EntireRow.Insert