当前位置: 首页 > 知识库问答 >
问题:

Excel VBA:在单独工作表范围内查找字符串变量,然后将范围变量设置为列

傅涵忍
2023-03-14

我试图在Lists.range(“I2:AD2”)范围内找到一个字符串变量a。一旦找到了这个单元格,我想要设置一个新的范围变量A_backup,使之成为从“i2:ad2”中找到的单元格到列中最后一个非空单元格的范围。我已经能够使用select、activecell等来实现这一点,但我希望避免这样做,因为当我从工作簿中的不同工作表中运行它时会导致问题。

A = OrderForm.Range("C15").Value

    If Len(A) > 0 Then
       Set A_backup = Lists.Range("I2:AD2").Find(A)
       Set A_backup = Range(A_backup.Address, A_backup.Address.End(xlDown)
    End If

共有1个答案

安泰平
2023-03-14

我想明白了,但我想听听有没有更好的办法:

Set A_backup = Range(Lists.Range("I2:AD2").Find(A), Lists.Range("I2:AD2").Find(A).End(xlDown))

结束如果

 类似资料:
  • 假设我想要一个变量包含从1到100的数字。我可以这样做: 但是把所有这些数字写下来需要很多时间。有没有办法给这个变量设置一个范围?类似的东西: 这听起来可能是一个非常愚蠢的问题,但我自己还没有弄清楚。提前感谢。

  • 问题内容: 我有一个从或指令属性或任何其他属性中获得的字符串,我想基于此在作用域上创建一个变量。所以: 但是,如果字符串包含一个或多个点,我想将其拆分并实际上“向下钻取”到作用域中。所以应该成为。这意味着简单版本不起作用! 在读取基于字符串的变量时,您可以通过做来获得这种行为,但是在分配值时如何实现呢? 问题答案: 我发现的解决方案是使用$ parse。 “将Angular表达式转换为函数。” 如

  • 本章介绍当模板在访问变量时发生了什么事情,还有变量是如何存储的。 当调用 Template.process 方法时,它会在方法内部创建一个 Environment 对象,在 process 返回之前一直使用。 该对象存储模板执行时的运行状态信息。除了这些,它还存储由模板中指令,如 assign, macro, local 或 global 创建的变量。 它不会尝试修改传递给 process 的数据

  • 问题内容: 我知道变量作用域由块的开始和块的结尾包围。如果在块内声明了相同的变量,则会发生编译错误。但是,请看以下示例。 在这里,可以在方法中重新声明,尽管它已经在类中声明了。但是在块中,无法重新声明。 为什么类范围变量的重新声明不产生错误,而方法范围变量的重新声明却产生错误? 问题答案: 这是因为不是变量,而是实例字段。允许局部变量与字段具有相同的名称。为了区分变量和具有相同名称的字段,我们在实

  • 问题内容: 我知道变量作用域由块的开始和块的结尾包围。如果在块内声明了相同的变量,则会发生编译错误。但是,请看以下示例。 在这里,可以在方法中重新声明,尽管它已经在类中声明了。但是在块中,无法重新声明。 为什么类范围变量的重新声明不产生错误,而方法范围变量的重新声明却产生错误? 问题答案: 这是因为不是变量,而是实例字段。允许局部变量与字段具有相同的名称。为了区分变量和具有相同名称的字段,我们在实

  • 问题内容: 这将编译 这不会 我希望两者都能编译(也许这是C的工作方式?)。是什么原因导致无法在外部块中以相同的名称声明一个块中的变量? 问题答案: 简短的答案是:因为这是JLS§6.4中定义Java语言的方式。 您可能从其他语言中使用过,因此允许使用所谓的可变阴影。但是,Java语言的发明者认为这是一个笨拙的功能,他们不希望使用其语言: 此限制有助于检测其他一些非常模糊的错误。 但是,正如作者在