数据类型申明有误,把CLNG改成CSNG Sub justtest() Dim arr, i&, k&, arrt, arrre() k = Cells(Rows.Count, 2).End(3).Row - 1 arr = Cells(2, 2).Resize(k, 8) arrt = Split("中央 省 市 区") ReDim arrre(1 To k, 1 To 4) For i = 1 To UBound(arr, 1) If arr(i, 1) <> "" Then For j = 1 To 4 If InStr(1, arr(i, 1), arrt(j - 1)) > 0 Then arrre(i, j) = Round(arr(i, 8) * CSng(Split(Split(arr(i, 1), arrt(j - 1))(1), "%")(0)) / 100, 2) Else: arrre(i, j) = 0 End If Next j End If Next i Range("j2:m" & Rows.Count).ClearContents Cells(2, "j").Resize(k, 4) = arrre End Sub |