所以我一直在忙于微软支持这个问题的答案,但他们的代码根本无法正常工作。我很困惑他们如何定义x,或者x总是等于VBA中的变量?无论如何,我试图在一个工作簿中复制所有命名区域,并将它们转移到另一个工作簿。我必须为50多个工作簿执行此操作,并且基本工作簿中有30-40个命名范围。我真的不想手动复制粘贴这些bugger。以下是他们为此问题提供的代码:
Sub Copy_All_Defined_Names()
' Loop through all of the defined names in the active
' workbook.
For Each x In ActiveWorkbook.Names
' Add each defined name from the active workbook to
' the target workbook ("Book2.xls" or "Book2.xlsm").
' "x.value" refers to the cell references the
' defined name points to.
Workbooks("trial run.xlsm").Names.Add Name:=x.Name, _
RefersTo:=x.Value
Next x
End Sub
运行此命令会出现以下错误:
并突出显示以下代码:
“trial run.xlsm”只是一个空白工作簿,并保存为启用宏;这是我的目标工作簿。看起来傻傻的要求帮助调试微软写的一个宏,但我在这里结束了。
对于我从中得到的原始页面,请参见此处:Microsoft Support
这就是我的命名范围:
答案 0 :(得分:0)
很难说但是我怀疑你的RefersTo字符串是> 256个字符:如果是这样,它将失败,因为VBA无法处理指向字符串> 256个字符。