提前感谢你的建议:我有一个电子表格,里面有G包含以下格式的 MAC 地址01:00:5e:00:00:09下面显示的代码采用 MAC 并在冒号处拆分,将 6 个元素中的每一个放入接下来的 6 列。H 到 M。
问题是数据在每种情况下都不会以字符串形式传输。因此,上面的 mac [01] 变为 [0],[00] 变为 [0],[09] 变为 [9]。我想要实现的是,[00] 等在每个新单元格中都保持为 [00]。
我尝试使用‘所以'01:00:5e:00:00:09
我已尝试在代码中进行预格式化(见下文).NumberFormat="@"。
我还能尝试什么?
'选项明确'
Public Sub SplitingD()
Dim myRange1 As Range
Dim myRange2 As Range
Dim myRange3 As Range
Set myRange1 = ActiveSheet.Columns(7)
Set myRange2 = ActiveSheet.Range("H1")
Set myRange3 = ActiveSheet.Range("H1:N" & fLastR)
myRange1.NumberFormatLocal = "@"
myRange2.NumberFormatLocal = "@"
myRange3.NumberFormatLocal = "@"
myRange1.Select
Selection.TextToColumns Destination:=myRange2, _
DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierSingleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:=":", _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), _
Array(5, 1), Array(6, 1)), TrailingMinusNumbers:=True
End Sub
感激 Stephen G6SGA
答案1
将数组中的格式FieldInfo
(每个数组对中的第二个数字)更改为2
。
文本到列在将值放入字段之前进行转换,从而01
变成数字1
,然后使用单元格的格式。
FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), _
Array(5, 2), Array(6, 2)), TrailingMinusNumbers:=True
第一个数字是列号,第二个数字是数据类型:https://docs.microsoft.com/en-us/office/vba/api/excel.xlcolumndatatype