如何将工作表名称数组输入VBA Sheets.Copy?

时间:2019-02-28 16:39:45

标签: arrays excel vba copy worksheet

在给定条件的情况下,我有这段代码使用工作表名称填充数组:

Dim lng_Counter As Long    
Dim arr_wks() As Variant

lng_Counter = 1

For Each wks In ThisWorkbook.Worksheets
    If Left(wks.Name, 2) = "Hi" Then
        ReDim Preserve arr_wks(lng_Counter)
        arr_wks(lng_Counter) = wks.Name
        lng_Counter = lng_Counter +1
    End if
Next wks

然后我想将这些工作表复制到一个新的工作簿中,因此我尝试了以下操作:

Sheets(arr_wks()).Copy

哪些不起作用。我可以使它正常工作的唯一方法是写出:

Sheets(Array(arr_wks(1),arr_Wks(2),...)).Copy

这没什么用,因为数组的大小将根据在给定时间满足条件的图纸数量而改变。

如何将数组输入Sheets(arr).Copy类型参数?

1 个答案:

答案 0 :(得分:1)

最后出现错误,即第一个元素(索引为零)为空。

您可以通过以下方式解决此问题

var name=document.getElementById("name_field1");
var email=document.getElementById("email_field1");
var pass=document.getElementById("password_field1");
function save(){

var firebaseRef=firebase.database().ref();
var nam=comm.value;
var em=email.value;
var pas=pass.value;
firebaseRef.push().set(nam);
firebaseRef.push().set(em);
firebaseRef.push().set(pas);

}

lng_Counter = 0

ReDim Preserve arr_wks(1 to lng_Counter)

在顶部。