我有一个范围变量(称为Constr),它基于看起来像这样的日期
Type Bound1 Bound2 Var1 Var2
X 1 2 3 4
Y 1 2 3 4
--
Z 1 2 3 4
目前我在整个范围内阅读全部4行。但我只对前两个感兴趣,' - '应该是我的门槛。
到目前为止,我尝试做的是遍历范围对象并检查“ - ”并将之前的所有内容复制到新的范围对象中。但它似乎没有用。
Dim my_constr_range As Range
Dim rngCell As Range
For Each rngCell In Range("Constr")
If rngCell.Value = "--" Then
Set my_constr_range = Range(Cells(my_constr_range) & Cells(rngCell.Value))
End If
Next
有人可以告诉我如何将数据复制到新的范围对象中,还是有更好的方法可以在双击“ - ”后删除条目
编辑:部分解决方案
所以在使用VBA一段时间后,我找到了一个点,我删除了正确的行并最终得到了我想要的范围对象,但不幸的是它删除了我实际工作表中的行,而我只想要它们消失在我的范围对象中。
以下是我提出的代码:
Dim Lrange As Range
Dim n As Long
Set Lrange = Range("Constr")
For n = Lrange.Rows.Count To 1 Step -1
If Lrange.Cells(n, 1).Value <> "--" Then
Lrange.Rows(n).Delete
ElseIf Lrange.Cells(n, 1).Value = "--" Then
Exit For
End If
Next
myitem("Constr") = Lrange.Value
如何将VBA引用回到工作表上的实际范围,我原本以为它正在处理内存中复制的数据?
答案 0 :(得分:1)
然后这样的事情会删除你不想要的行。
rw = Range("Constr").Find(What:="--", LookIn:=xlValues, LookAt:=xlWhole).Row
lrw = Range("Constr").Rows.Count
Rows(rw & ":" & lrw).Delete
这将更改您的命名范围: 设置nr =范围(“Constr”)
'给出一个绝对的参考: nr.RefersTo =“= Sheet1!$ A $ 2:$ C $”&amp; RW-1