Vba 从数组中删除空值并复制到新数组

Vba 从数组中删除空值并复制到新数组,vba,excel,Vba,Excel,我将一行文本拆分为一个数组,然后尝试将其放入一个没有空空格的新数组中。出于某种原因,它没有从旧阵列复制到新阵列。顺便说一句,如果有人有一个更有效的方法来做这件事,我是开放的,以及 Dim x As Variant, i As Integer, m As String, rdate As String, k(0 To 50) As Variant, j As Integer rdate = ThisWorkbook.Sheets("sheet1").Range("a58").Value j = 0

我将一行文本拆分为一个数组,然后尝试将其放入一个没有空空格的新数组中。出于某种原因,它没有从旧阵列复制到新阵列。顺便说一句,如果有人有一个更有效的方法来做这件事,我是开放的,以及

Dim x As Variant, i As Integer, m As String, rdate As String, k(0 To 50) As Variant, j As Integer
rdate = ThisWorkbook.Sheets("sheet1").Range("a58").Value
j = 0
x = Split(rdate, "  ")

For i = 0 To UBound(x)
    If x(i) <> "" Then
        k(j) = x(i)
        j = j + 1
        m = m & j & k(j) & vbCrLf
    End If
Next
MsgBox m
Dim x作为变量,i作为整数,m作为字符串,rdate作为字符串,k(0到50)作为变量,j作为整数
rdate=ThisWorkbook.Sheets(“sheet1”).范围(“a58”).值
j=0
x=拆分(rdate,“”)
对于i=0到UBound(x)
如果x(i)“,则
k(j)=x(i)
j=j+1
m=m&j&k(j)和vbCrLf
如果结束
下一个
MsgBox m

您的脚本在递增
j
之后正在添加
k(j)
。。。您的msgbox显示为空。

您的脚本在递增
j
之后正在添加
k(j)
。。。您的msgbox显示为空。

是的,我必须执行它,事实上…:)是的,我必须执行它,事实上…:)作为旁白,如果执行以下操作,脚本将更快地运行头发:如果LenB(x(i)),请参见:作为旁白,如果执行以下操作,脚本将更快地运行头发:如果LenB(x(i)),请参见: