【发布时间】: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 " & VarArray(j) & " 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)的实际值。我能想到这样做的唯一原因是,如果您有很多示例,并且您希望能够在需要时在电子表格中轻松更改它们。 (我以前见过类似的东西)。如果这是您需要的,请告诉我,我会为此提供解决方案。