Excel VBA MAC 地址格式并提取到列,因为文本 00 更改为 0 或 01 更改为 1

Excel VBA MAC 地址格式并提取到列,因为文本 00 更改为 0 或 01 更改为 1

提前感谢你的建议:我有一个电子表格,里面有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

相关内容