Excel 引用其他工作表中的单元格。动态/可变
我有一个关于在其他工作表中引用单元格的问题。 我在VBA中获得了以下代码: 如果Application.CountIf(.Rows(Lrow),'8000')=0,Application.CountIf(.Rows(Lrow),'9000')=0,则.Rows(Lrow).Delete 我可以删除任何没有8000和9000字的行。 但是,由于将来会有更新,我如何调整代码,使excel要执行的值可以是“动态的”(即不是硬核心的) 比如说,如果我在工作表1的单元格(17,2)中输入一个数字,我可以用什么制作excel来查看单元格地址,而不是用VBA查看工作表2中的“绝对值”Excel 引用其他工作表中的单元格。动态/可变,excel,vba,Excel,Vba,我有一个关于在其他工作表中引用单元格的问题。 我在VBA中获得了以下代码: 如果Application.CountIf(.Rows(Lrow),'8000')=0,Application.CountIf(.Rows(Lrow),'9000')=0,则.Rows(Lrow).Delete 我可以删除任何没有8000和9000字的行。 但是,由于将来会有更新,我如何调整代码,使excel要执行的值可以是“动态的”(即不是硬核心的) 比如说,如果我在工作表1的单元格(17,2)中输入一个数字,我可以用
谢谢 您可以在已有代码的上方添加这两行代码。这是假设您希望通过将数字输入单元格B17或B18来更改其中一个数字
Dim lowerBound as Long, upperBound as Long
lowerBound = Sheet1.Range("B17").Value
upperBound = Sheet1.Range("B18").Value
然后将中的“8000”替换为lowerBound,将“9000”替换为Upper Bound。您可以在源工作表中添加一列X,标题为“Condx for DELETE”,并用一个表示删除条件的布尔值的公式填充此列,例如:=NOT(或(A2=8000,A2=9000))(a列中显示8000、9000等值) 然后循环遍历源表并删除列X为真的所有记录。粉碎
- 您的源已在VBA中定义为范围对象(MyRange)
- 第一行是标题行
- 列表标题和结尾之间的第一列中没有空单元格
- 在第3列中找到该条件
Sub MySub()
Dim MyRange As Range, Idx As Integer, MyCondx As Integer
Set MyRange = ActiveSheet.[A1] ' represent source data as a range
Idx = 2 ' asuming one header row
MyCondx = 3 ' asuming condition is in 3rd column
Do While MyRange(Idx, 1) <> ""
If MyRange(Idx, MyCondx) Then
MyRange(Idx, 3).EntireRow.Delete
Else
Idx = Idx + 1
End If
Loop
End Sub
Sub MySub()
Dim MyRange作为范围,Idx作为整数,MyCondx作为整数
Set MyRange=ActiveSheet。[A1]”将源数据表示为一个范围
Idx=2'表示一个标题行
MyCondx=3'测量条件在第3列
当MyRange(Idx,1)”时执行此操作
如果是MyRange(Idx,MyCondx),则
MyRange(Idx,3).EntireRow.Delete
其他的
Idx=Idx+1
如果结束
环
端接头
通过这种方式,您可以实现完全透明,无需硬编码,并且您可以非常灵活地不仅更改一组2个值,还可以指定为业务服务的任何条件
希望这有帮助-祝你好运你的意思是,它不是寻找8000或9000,而是寻找你在单元格中输入的值?