当指定单元格非空时合并同行其他单元格的VBA实现问题
处理PDF转Excel后的姓名拆分异常问题
将PDF数据导入Excel解析时,使用Text to Columns功能按空格拆分数据,多数行可正常处理,但包含空格的姓名会导致拆分异常。需要添加VBA代码实现:遍历每行,若J列单元格非空,则合并该行其他单元格。
我参考了两段类似代码:
FixRows代码(统一行长度)
Sub FixRows() Dim i As Long For i = 1 To 20000 Step 1 If Not IsEmpty(Range("Q" & i)) Then Range("B" & i & ":I" & i).Delete Shift:=xlToLeft Next i End Sub
合并三单元格代码
Columns("D:D").Insert Dim LastRow As Long With Worksheets("Sheet1") LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row With .Range("D1:D" & LastRow) .Formula = "=A1&"" ""&B1&"" ""&C1" .Value = .Value End With End With Columns("A:C").Delete
结合思路编写TestConcat代码时出现编译错误:Invalid Qualifier,错误出现在第二个i处:
报错的TestConcat代码
Sub TestConcat() Dim i As Long For i = 1 To 20000 Step 1 If Not IsEmpty(Range("J" & i)) Then Range("A" & i).Formula = "A" & i & " " & "B" & i.Value = .Value Range("B" & i).Delete Shift:=xlToLeft Next i End Sub
修正后得到可用代码,需注意删除单元格逻辑避免误删整列:
修正后的TestConcat代码
Sub TestConcat() Dim i As Long For i = 1 To 20000 Step 1 If Not IsEmpty(Range("J" & i)) Then Range("A" & i).Value = Range("A" & i).Value & Range("B" & i).Value If Not IsEmpty(Range("J" & i)) Then Range("B" & i).Delete Shift:=xlToLeft Next i End Sub
内容的提问来源于stack exchange,提问作者DazedAndPerplexed
相关产品推荐
相关产品推荐

