我在转换时将一些pdf文件转换为xlsx格式,pdf文件中的数据以xlsx格式分散,因此我编写了一个宏来调整数据。
现在问题是G栏有食物项目的数据,如" 1 Cream"," 7 Cakes"," 3 Sugars" 我注意到像这样的数据之间有一个空格字符。
还有一些数据,例如" 343 Wilson Avenue"," 232 The Broadway"
我想将食品的所有数据移到H栏,并希望将地址保留在G栏中。
我注意到食物上的第二个角色总是有空格
我正在使用的代码是
Sub Price_Adjust()
Dim J As Range, L As Range, G As Range, K As Range, r As Range
Set J = Intersect(ActiveSheet.UsedRange, Range("J:J"))
Set L = Intersect(ActiveSheet.UsedRange, Range("L:L"))
Set G = Intersect(ActiveSheet.UsedRange, Range("G:G"))
Set K = Intersect(ActiveSheet.UsedRange, Range("K:K"))
For Each r In J
If Left(r.Text, 1) = "$" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In J
If Left(r.Text, 1) = "(" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In L
If Left(r.Text, 1) = "(" Then
r.Copy r.Offset(0, -1)
r.Clear
End If
Next r
For Each r In L
If Left(r.Text, 1) = "$" Then
r.Copy r.Offset(0, -1)
r.Clear
End If
Next r
For Each r In G
If Left(r.Text, 1) = "D" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In G
If Left(r.Text, 1) = "H" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In G
If Left(r.Text, 1) = "T" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In G
If Left(r.Text, 1) = "C" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In G
If Left(r.Text, 1) = "1" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
For Each r In K
If Left(r.Text, 1) = "P" Then
r.Copy r.Offset(0, 1)
r.Clear
End If
Next r
ActiveWorkbook.Save
End Sub
答案 0 :(得分:0)
为了确定字符串的第二个字符是space
,请使用:
Dim TheString as String
TheString = "6 ducks"
If Mid(TheString, 2, 1) = " " Then
MsgBox "There's a space in position 2 of the string"
End If
对于您的特定用途,请注意,您可能会遇到4 Wicker Drive
等地址,并最终导致错误的数据排序。
更新:
将此代码置于某种循环中,以便在G
列
If IsNumber(Left(MySheet.Range("G" & SomeRow), 1) Then
MySheet.Range("H" & SomeRow) = MySheet.Range("G" & SomeRow)
MySheet.Range("G" & SomeRow) = ""
End If