下面有移动数据的动态命名范围

时间:2017-10-03 19:52:45

标签: vba validation dynamic while-loop named-ranges

我正在尝试创建一个动态命名范围,我可以将其用于数据验证列表。我一直使用这些,但在这种情况下,我的信息位于该范围内无法计算的范围之内。另外,我有一个宏,可以在此范围内插入需要计算的行。

如果列中没有其他内容,我通常会使用类似的内容:= OFFSET($ A $ 1,0,0,COUNTA($ A:$ A),1)

我需要在页面上开始这一点,所以我使用了: = OFFSET($ A $ 24,0,0,COUNTA($ A $ 24:$ A24),1)

注意我已删除" $"在最后一次" 24"在公式中希望它会相应地扩展,但这似乎并不一致。

基本上,我需要COUNTA系列只包含一系列始终在增长和缩小的细胞。

我在VBA中并不坏,我愿意接受一个解决方案,可能包括在一系列单元格中循环,并在它到达一个值等于特定文本字符串的单元格时停止(在这种情况下)将是.Value ="请求1")。但是我对提供表单或ActiveX控件感到有点担心,因为这在过去会给我带来查看和打印功能的问题。

1 个答案:

答案 0 :(得分:0)

我使用以下代码在工作簿中的其他位置创建一个范围,然后我可以轻松地使用它来创建动态命名范围:

Sub UpdateEntities()

Dim i As Long, x As Long

i = 24
x = 1

Sheets("Values").Range("AH:AH").ClearContents

Do While Cells(i, 1).Value <> "REQUEST 1"

Cells(i, 1).Select

If ActiveCell.Value <> "" Then
Sheets("Values").Cells(x, 34).Value = ActiveCell.Value
i = i + 1
x = x + 1
Else
i = i + 1
End If

Loop

End Sub