【问题标题】:Excel VBA trying to use a cell to store a variable calculationExcel VBA 尝试使用单元格存储变量计算
【发布时间】:2015-12-10 17:03:16
【问题描述】:

我不太清楚如何措辞,所以如果这没有多大意义,我深表歉意:)

我希望能够将变量的信息放入 excel 中的单元格中,然后在 VBA 中引用它。这是我创建的查找和替换宏的一部分,因此我将遍历许多行。我想将数据放在一个单元格中,以便我可以扩展我通过 excel 表循环的内容。

这是成功的示例代码:

Dim VarArray(1 To 3) As String

For i = 1 to 3
VarArray(i) = "ABC"
Next

Set rng = Range("D:D")
Varlookups = Application.WorksheetFunction.CountIf(rng, "<>")

For j = 1 To 3
For k = 2 To Varlookups

Findtext = "take " & VarArray(j) & " tablet" 
Replacetext = "insert " & VarArray(j) & " tablet" 
Columns("B").Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
Next

我希望能够手动将这些片段放在 excel 中的单元格中:

单元格 D2 = "take " & VarArray(j) & " tablet"

单元格 E2 = “插入” & VarArray(j) & “平板电脑”

然后更改我的 VBA 公式以引用这些单元格:

Findtext = Range("D2").value
Replacetext = Range("E2").value

我尝试使用评估但没有成功。我真的对如何做到这一点持空白。提供的任何帮助将不胜感激。 :)

【问题讨论】:

  • book.sheet.range("D2").value = "take " &amp; VarArray(j) &amp; " tablet" 相应地设置书籍和纸张。
  • 我没有尝试使用 VBA 将这些单元格设置为 "take " & VarArray(j) & " tablet" 和 "insert " & VarArray(j) & " tablet" 。跨度>
  • 我要做的是使用这些单元格中的内容来执行查找和替换。我想在单元格 D2 中手动输入“take” & VarArray(j) & “tablet”。然后,我希望我的 VBA 代码采用它并将其计算到变量 Findtext 中,就像我将该文本放在 VBA 中等号的右侧一样。由于变量 VarArray(j),第一个循环的 Findtext 应评估为“使用 ABC 平板电脑”。当我刚刚使用 Findtext = Range("D2").value 时,它​​会评估为整个字符串“take” & VarArray(j) & “ tablet”。不过还是谢谢你的回复:)
  • 这是一种相当复杂的方法 XD 你清楚地知道如何使用变量。使用它们!
  • 是的,我同意@findwindow。当您的代码中已经包含 VBA 代码时,为什么还要将其存储在单元格中?如果这样做,则无论如何都必须将VarArray(j) 的文本替换为代码中VarArray(j) 的实际值。我能想到这样做的唯一原因是,如果您有很多示例,并且您希望能够在需要时在电子表格中轻松更改它们。 (我以前见过类似的东西)。如果这是您需要的,请告诉我,我会为此提供解决方案。

标签: vba excel


【解决方案1】:

你必须提到像这样的工作表的范围值..

Findtext = Sheets("Sheet1").Range("D2").Value
Replacetext = Sheets("Sheet1").Range("E2").value

Sheets("Sheet1").Range("D2").Value = "take " & VarArray(j) & " tablet"

Sheets("Sheet1").Range("E2").Value= "insert " & VarArray(j) & " tablet"

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2017-01-13
    • 2018-02-28
    • 2022-11-18
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多