Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在excel中将一列中从“-”分隔的数据划分为多个列_Excel_Vba - Fatal编程技术网

在excel中将一列中从“-”分隔的数据划分为多个列

在excel中将一列中从“-”分隔的数据划分为多个列,excel,vba,Excel,Vba,我使用的是Microsoft Excel,我收到一个文件,其中一列中有两个单词,分别是空格、破折号、空格,即有如下内容: XXXXXX - XXXXXXXXXXXX XXX - XXXXXXXX XXXX - XXX 我想把这些词分成两个不同的栏目。我该怎么做?提前感谢。您需要循环单元格,使用拆分分离数据,使用-作为分隔符,然后将这些数据写入相应的单元格 Sub sSplitHyphen() Dim lngRow As Long Dim lngLast As Long

我使用的是Microsoft Excel,我收到一个文件,其中一列中有两个单词,分别是空格、破折号、空格,即有如下内容:

XXXXXX - XXXXXXXXXXXX
XXX - XXXXXXXX
XXXX - XXX

我想把这些词分成两个不同的栏目。我该怎么做?提前感谢。

您需要循环单元格,使用拆分分离数据,使用-作为分隔符,然后将这些数据写入相应的单元格

Sub sSplitHyphen()
    Dim lngRow As Long
    Dim lngLast As Long
    Dim aData() As String
    lngLast = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    For lngRow = 1 To lngLast
        If InStr(ActiveSheet.Cells(lngRow, 1), "-") > 0 Then
            aData = Split(ActiveSheet.Cells(lngRow, 1), "-")
            ActiveSheet.Cells(lngRow, 2) = Trim(aData(0))
            ActiveSheet.Cells(lngRow, 3) = Trim(aData(1))
        End If
    Next lngRow
End Sub
我已经使用Trim删除了前导/尾随空格。如果所有数据都用-分隔,则可以使用它分割数据


关于,

您用VBA标记了问题,但没有发布任何代码

非VBA解决方案将使用文本到列。只需将空格标记为分隔符,其他选项将其设置为-即可正常工作:

将文本用于列时,在步骤1中选择Delimited。在步骤2中,执行以下操作:

XXXXXX - XXXXXXXXXXXX
XXX - XXXXXXXX
XXXX - XXX
第三步,选择Finish

你会得到这个:

您可能希望查看以在单元格和单元格范围内循环。