根据偏移单元格文本信息设置命名范围

时间:2017-12-21 16:54:40

标签: excel vba excel-vba

我有一张名为" Sales"的工作表。此工作表具有A2列:A1500,带有项目名称。 A2至A1500行中的每一行都在每个项目的相邻列上具有销售信息。我有一个Web API,用于更新每行的项目销售信息以及它与新数据相邻的列(始终覆盖同一行)。

我正在尝试创建一个代码,用于根据相邻单元格的文本创建命名范围,以及是否创建新项目名称以为添加的新项目创建命名范围。

第一。我想在每行的每个Item名称中创建命名范围。意思是单元格A2文本将是" ItemName1"范围,A3文本将是" ItemName2"范围。这个函数我将需要遍历整个列A的最后一行。

第二。如果Web API在A列中创建了新的Itemname,则api设置为在A列的最后一个已知行创建新的项目名称。

这是我到目前为止所拥有的。但我想到了新项目的变量,我没有解决方案。

glGetString(GL_VERSION)

我目前正在

  

应用程序或对象定义错误

Sub NamedRanges() Dim rngCell As Range Dim intLstRow As Integer intLstRow = ActiveSheet.UsedRange.Rows.Count For Each rngCell In Range("B2:B" & intLstRow) ActiveWorkbook.Names.Add Name:=rngCell.Offset(0, -1).Value, RefersTo:=Range("Sales!$B$" & rngCell.Row) Next End Sub

我确实在ActiveWorkbook.Names.Add Name:=上看到了我的第一个小区名称。

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试以下方法。它使用正确的语法连接命名范围的名称,并使用不同的方法查找最后一行。使用UsedRange的方法可能会产生意外结果。我还将最后一行的名称更改为LstRow,因为您不需要在VBA中使用Hungarian表示法,也可以将其设置为Long以避免溢出。

Option Explicit

Sub NamedRanges()

Dim rngCell As Range
Dim LstRow As Long

With ActiveSheet

    LstRow = .Cells(.Rows.Count, "A").End(xlUp).Row

End With


For Each rngCell In Range("B2:B" & LstRow)
    ActiveWorkbook.Names.Add Name:=rngCell.Offset(0, -1).Value, RefersTo:=Range("Sales!$B$" & rngCell.Row)
Next

End Sub