VBA 扩展工作簿中的 multiple/all 个命名范围
VBA to extend multiple/all named ranges in a workbook
自上周末以来,我一直在努力使用代码来扩展工作簿中所有名为 运行ges 的代码,但它总是出错。以下是我到目前为止所达到的水平,我们将不胜感激任何帮助:
Sub ResizeNamedRange()
Dim xWb As Workbook
Dim xName As Name
Set xWb = Application.ActiveWorkbook
Set xName = xWb.Names.Item
For Each xName In ActiveWorkbook.Names
With xName
.RefersTo = .RefersToRange.Resize(, 14)
End With
Next
End Sub
我也试过下面的代码:
Sub AdjNamedRanges_New()
Dim nRange As Name
Dim strName As String
Dim ans As Long
For Each nRange In ActiveWorkbook.Names
strName = nRange.Name
With ActiveWorkbook.Names.Item(strName)
ans = Range(strName).Columns.Count
.RefersTo = .RefersToRange.Resize(, ans + 12)
End With
Next nRange
End Sub
当我运行这个宏时,它给了我错误'400'
当我按下 'F8' 时,'nRange' 和 'strName' 都在鼠标悬停时显示 'File Name'(当前文件名)。
在'For'语句后,鼠标上的strName显示错误“
我曾尝试将上述代码粘贴到新模块以及活动模块中 sheet,但没有成功。
你能告诉我我做错了什么吗?
你的错误在这一行:
Set xName = xWb.Names.Item
item
需要一个参数,所以你应该写:
Set xName = xWb.Names.Item(1)
或类似。
虽然文档说参数是可选的,但后来在备注中添加了:
You must specify one, and only one, of these three arguments.
您的其余代码工作正常!
参考:
亲爱的,
对于所有遇到同样问题的人,我可以通过以下宏解决它:
Sub MonthlyReporting()
Dim nRange As Name
Dim strName As String
Dim ans As Long
For Each nRange In ActiveWorkbook.Names
On Error Resume Next
strName = nRange.Name
With ActiveWorkbook.Names.Item(strName)
ans = Range(strName).Columns.Count
.RefersToR1C1 = .RefersToRange.Resize(, ans + 12)
End With
Next nRange
End Sub
自上周末以来,我一直在努力使用代码来扩展工作簿中所有名为 运行ges 的代码,但它总是出错。以下是我到目前为止所达到的水平,我们将不胜感激任何帮助:
Sub ResizeNamedRange()
Dim xWb As Workbook
Dim xName As Name
Set xWb = Application.ActiveWorkbook
Set xName = xWb.Names.Item
For Each xName In ActiveWorkbook.Names
With xName
.RefersTo = .RefersToRange.Resize(, 14)
End With
Next
End Sub
我也试过下面的代码:
Sub AdjNamedRanges_New()
Dim nRange As Name
Dim strName As String
Dim ans As Long
For Each nRange In ActiveWorkbook.Names
strName = nRange.Name
With ActiveWorkbook.Names.Item(strName)
ans = Range(strName).Columns.Count
.RefersTo = .RefersToRange.Resize(, ans + 12)
End With
Next nRange
End Sub
当我运行这个宏时,它给了我错误'400'
当我按下 'F8' 时,'nRange' 和 'strName' 都在鼠标悬停时显示 'File Name'(当前文件名)。
在'For'语句后,鼠标上的strName显示错误“
我曾尝试将上述代码粘贴到新模块以及活动模块中 sheet,但没有成功。
你能告诉我我做错了什么吗?
你的错误在这一行:
Set xName = xWb.Names.Item
item
需要一个参数,所以你应该写:
Set xName = xWb.Names.Item(1)
或类似。
虽然文档说参数是可选的,但后来在备注中添加了:
You must specify one, and only one, of these three arguments.
您的其余代码工作正常!
参考:
亲爱的,
对于所有遇到同样问题的人,我可以通过以下宏解决它:
Sub MonthlyReporting()
Dim nRange As Name
Dim strName As String
Dim ans As Long
For Each nRange In ActiveWorkbook.Names
On Error Resume Next
strName = nRange.Name
With ActiveWorkbook.Names.Item(strName)
ans = Range(strName).Columns.Count
.RefersToR1C1 = .RefersToRange.Resize(, ans + 12)
End With
Next nRange
End Sub