我想在动态创建的 Excel 工作表中命名一个范围。我尝试遵循但它不起作用。
With oWB
For intCount = 1 To wbnum1
.Worksheets.Add(After:=.Worksheets(intCount + 1))
.Sheets(intCount + 1).Name = "Sheet" & intCount.ToString()
.Sheets(intCount + 1).Cells(19, 2).value = "Sheet" & intCount.ToString
.Sheets(intCount+1).Range("A1:Z1")
.Range.Name = "Numbers"
Next
这有什么问题吗?
谢谢
最佳答案
您没有指定范围。
大概,您应该合并最后一行和倒数第二行:
.Sheets(intCount+1).Range("A1:Z1").Name = "Numbers"
但是,从实验来看,以这种方式分配名称会创建工作簿级别名称,导致在循环访问工作表后只有最后一个分配有效。
另一种/更安全的方法是通过工作表的名称集合将名称添加为工作表特定名称:
.Sheets(intCount+1).Names.Add "Numbers", .Sheets(intCount+1).Range("A1:Z1")
关于vb.net - 使用 VB.NET 命名动态创建的 Excel 工作表中的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170347/