首页 > 解决方案 > 如何删除参数不是可选错误

问题描述

我想在 sub.but 中调用函数向量。但是当我运行它时,它给出的错误参数不是可选的并突出显示向量。我应该怎么做

Option Explicit
Option Base 1

Sub JumbleArray()
Dim n As Integer, rng As Range, Z As Variant, rn As Integer, tem As Integer, j As Integer
Dim k As Integer
Set rng = Range("A1:C3")
**Z = myfunction(vector)**
For j = 1 To n
    rn = WorksheetFunction.RandBetween(1, n - j + 1)
    tem = Z(n - j + 1)
    Z(n - j + 1) = Z(rn)
    Z(rn) = tem
Next j
End Sub
Function vector(rng As Range)
Dim nr As Integer, nc As Integer, i As Integer, j As Integer, temp()
nr = rng.Rows.Count
nc = rng.Columns.Count
ReDim temp(nr * nc)
For i = 1 To nr
    For j = 0 To nc - 1
    temp((j * nr) + i) = rng.Cells(i, j + 1)
    Next j
Next i
temp = WorksheetFunction.Transpose(temp)
vector = temp
End Function

标签: excelvba

解决方案


这不是你调用函数的方式。你可能是这个意思:

Set rng = Range("A1:C3")

Z = vector(rng)

推荐阅读