0

我正在尝试将字符串(例如“M - F”)分隔为“M”和“F”。然后将这些新字符串放入两个不同的单元格中。我尝试了拆分方法,但它仍然报告一些错误,我不知道该怎么办。任何人都可以帮忙。

Function Aprobace(apr As String) As String
    Dim spt() As String
    Dim i As Integer
    If InStr(1, apr, " - ") < 1 Then
        Aprobace = apr
    Else
        spt = Split(apr, " - ")
        For i = 0 To Application.WorksheetFunction.CountA(spt)
        ActiveCell.Value = spt(i).Value
        ActiveCell.Offset(1, 0).Select
        Next i
    End If
End Function
4

1 回答 1

0

你的第一个错误是:ActiveCell.Value = spt(i).Value. 由于spt此时被声明为数组而不是工作表范围,因此.Value像这样使用该方法是没有意义的Range

其次,由于类似的原因Application.WorksheetFunction.CountA(spt),使用 on 没有意义。spt由于spt仍然只是在内存中并且实际上不是工作表上的范围,因此不应在工作表函数中使用它。spt如果您试图找出方法运行后填充了多少索引Split,这更合适:UBound(spt)

查看修改后的功能:

Function Aprobace(apr As String) As String
    Dim spt() As String
    Dim i As Integer
    Dim count As Long

    If InStr(1, apr, " - ") < 1 Then
        Aprobace = apr
    Else
        spt = Split(apr, " - ")
        count = UBound(spt)  '<----------------------
        For i = 0 To count
            ActiveCell.Value = spt(i) '<-----------------------
            ActiveCell.Offset(1, 0).Select
        Next i
    End If
End Function
于 2013-04-28T16:44:59.513 回答