使用VB.NET在动态创建的excel工作表中命名一个范围
我想在动态创建的excel工作表中命名一个范围。我试着跟随,但不起作用使用VB.NET在动态创建的excel工作表中命名一个范围,vb.net,excel,range,Vb.net,Excel,Range,我想在动态创建的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"
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")
名称范围名称不能:-以数字开头
-包括:;字符
-如果名称重复,则每个名称必须具有唯一的名称
-保留excel函数名尝试:
.Sheets(intCount+1).Range(“A1:Z1”).name=“Numbers”
Dim uniqueName as String = "A_NamedRangeName_" & i
Dim rnArea as Range = .ActiveSheet.Range(leftCol & startRow, rightCol & endRow)
Name name = .ActiveBook.Names.Add(uniqueName, rnArea)