我的非Microsoft文件看起来像是:
>gibberish that changes
AAARRGGGHHHH
现在,我有一个代码来创建一个新的.xlsx文件,使用Trying to convert files while keeping the old name进行拆分。
然而,我想要" A2"要分割的单元格内容,每个单独的字母被分配一个单元格,然后删除以前的内容。我不介意,如果最终在A3直到AZ。
因此,上面的例子我想转换成它看起来像:
>gibberish that changes
A A A R R G G G H H H H
澄清"改变的#Gibberish"它不是一个常数,它改变每个文件我有这里表示的东西。第二行也是如此。
基于Split cell string into individual cells
我试过这段代码:
Dim sVar1 as string
Dim sVar2 as string
I = InStr(1, strX, "A" & "R" & "G" & "H")
sVar1 = mid(strX, 1, I)
sVar2 = mid(strx,i+1)
然而,这没有结果。它不会导致宏失败(因为我没有得到任何错误消息,其余的宏工作(将文件更改为另一种格式并更改名称),但它没有做任何事情。我想使用字符串作为文件在单元格A2中的内容和顺序不断变化。
我也没有真正的分隔符,因为像ARRGHHHH这样的东西被写成一个单词,是否会导致问题?
答案 0 :(得分:4)
my 0.02 with Character
object
Sub main()
With Range("A2")
For i = 1 To Len(.Value)
.Offset(, i) = .Characters(i, 1).Text
Next i
End With
End Sub
答案 1 :(得分:1)
这会将 A2 解析为其字符,并将字符放在 A2 旁边,每个字符都位于自己的单元格中:
Sub dural()
With Range("A2")
v = .Value
L = Len(v)
For i = 1 To L
.Offset(0, i).Value = Mid(v, i, 1)
Next i
End With
End Sub
修改#1:强>
这将处理一系列输入单元格和清除原始输入数据。之前:
新宏:
Sub dural2()
Dim rng As Range, r As Range, v As Variant
Dim L As Long, i As Long
Set rng = Range("A2:A40")
For Each r In rng
v = r.Value
L = Len(v)
For i = 1 To L
r.Offset(0, i - 1).Value = Mid(v, i, 1)
Next i
Next r
End Sub
结果:
答案 2 :(得分:0)
这会有用吗?
Sub Test()
Dim i As Integer
Dim num As Integer
num = Len(Range("A1"))
For i = 1 To num
Debug.Print Mid(Range("A1"), i, 1)
Next
End Sub
答案 3 :(得分:0)