【问题标题】:How to split a cell using only spaces and without period as delimiter如何仅使用空格而不使用句点作为分隔符来拆分单元格
【发布时间】:2021-04-19 10:24:57
【问题描述】:

我在一个单元格中有一个包含多个 IP 地址的数据列表。 我使用逗号分隔符将 IP 拆分为单独的单元格。

例如,

A
10.10.33.187 10.10.48.6 10.10.33.188
10.56.100.77 172.22.210.253
172.22.210.3 172.22.210.6 172.22.210.7 172.22.210.8

转换成,

A B C D
10.10.33.187 10.10.48.6 10.10.33.188
10.56.100.77 172.22.210.253
172.22.210.3 172.22.210.6 172.22.210.7 172.22.210.8

但是,当我再次运行代码时,它也会将每个 IP 拆分为单独的数字。 虽然代码没有使用句点分隔符,但为什么 IP 地址会沿着句点分开?

例如,

A
10.10.33.187

转换成,

A B C D
10 10 3 187

我知道这可以使用简单的 excel 函数来完成。 但是,我需要 VBA 代码来完成一项更大的任务,这只是其中的一个步骤。 那么有人可以帮我防止句号分裂(句号)吗? 没有句点分隔符为什么要在句点处拆分它?

Sheets("Hosts").Activate
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True

【问题讨论】:

  • 我会使用 find() 和 left() mid() 和 right() 来拆分它们。提示:去空格...
  • @braX 感谢您的链接。在发帖之前我已经检查过了。它没有将句点(“.”)作为分隔符。由于我没有在我的代码中使用它,我想知道为什么我的代码会根据句点拆分。

标签: excel vba split delimiter


【解决方案1】:

Range.TextToColumns method 有一个问题,它喜欢记住上次使用的内容,以便拆分。因此,如果您在之前的TextToColumns 操作中包含一个点. 进行拆分,即使它仅在用户界面中也是如此。 Excel 倾向于记住并使用它。

为避免这种情况,我建议指定方法的所有参数。这里缺少的是Other:=False,以确保没有其他字符用于拆分。

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=True, Other:=False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2019-12-25
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多