Dim wkbkdestination As Workbook
Dim destsheet As Worksheet
For Each ThisWorkSheet In wkbkorigin.Worksheets
'this throws subscript out of range if there is not a sheet in the destination
'workbook that has the same name as the current sheet in the origin workbook.
Set destsheet = wkbkdestination.Worksheets(ThisWorkSheet.Name)
Next
Run Code Online (Sandbox Code Playgroud)
基本上,我遍历原始工作簿中的所有工作表,然后destsheet
在目标工作簿中将其设置为与原始工作簿中当前迭代的工作表相同的工作表.
如何测试该表是否存在?就像是:
If wkbkdestination.Worksheets(ThisWorkSheet.Name) Then
Run Code Online (Sandbox Code Playgroud) 如何确定对象是否是VBA中集合的成员?
具体来说,我需要找出表定义是否是TableDefs
集合的成员.
对于给定的单元格,我选择数据/验证并将允许设置为"列表".我现在希望像这样设置Source:
= rNames(REGS)
但这不起作用(找不到名字).所以我去插入/名称/定义并通过简单地指定上面的公式创建"REGNAMES"(没有单元格范围).然后我返回数据/验证,当我像这样设置Source时:
= REGNAMES
现在我得到"Source当前评估为错误".不幸的是,即使忽略它,这个错误也不会消失.我可以在表格中创建一个范围公式,如下所示:
{= REGNAMES}
并将其拖到几个单元格的右侧,并忠实地返回rNames函数
选项#1 | 选项#2 | ...
也就是说,该函数返回预期的范围.
我知道我可以使用宏代码来操作VBA中该单元格的List设置.我不太喜欢这些副作用.我更喜欢一个基于函数的干净依赖树.任何想法如何让数据/验证接受从rNames返回的数组值?
谢谢.
PS:rNames将结果范围作为Variant返回,如果有任何影响的话.