vb.net - 使用 VB.NET 命名动态创建的 Excel 工作表中的范围

标签 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" & 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/

相关文章:

vba - Excel VBA - 将表列存储到范围变量中

c# - 在 c# 为什么 (char)(1) + (char)(2) 导致 int 3

c# - 有没有理由不将 "1"类与小型 VSTO 加载项一起使用?

MySQL 计算多个日期范围内的行数?

excel - 如何在“数据”选项卡的“文本到列”功能中将所有列指定为 "Text"?

vba - 如何在vba中构建一个可以区分0的默认空对象?

java - 在java中按降序或升序打印整数范围

vb.net - 如何避免 <string xmlns ="http://schemas.microsoft.com/2003/10/Serialization/">?

vb.net - 强制模块 namespace 限定

sql-server - 将 Excel 与 SQL Server 集成