使用VBA引用另一个工作表中的单元格,该工作表本身由其文本引用

时间:2018-08-06 13:34:16

标签: excel vba excel-vba excel-formula concatenation

我是VBA的新手,正在尝试创建一种预算工具产品。我试图遍历从D2开始并向下直到包含数据的单元格出现中断的一系列单元格。必须在工作表4之后的每个工作表上运行。在D2之后的D中,每个单元格都引用回到我的文档中称为“高级培训”的工作表。然后,我需要一个公式自动输入到培训课程右侧的文本框中(在4之后的页面的D列中)。此公式为"=B9*'Master Trainings!'XX",其中XX是“高级培训”页面上同名培训课程右侧的单元格。如果您可以让循环停止运行,那很好,但是我试图让它首先真正输入公式。我尝试使用引号将其手动输入,并与我要查找的“高级培训”中的值连接在一起,但它不起作用。这是我到目前为止再次尝试后的结果。

Dim findRng As Range
Dim foundRng As Range
Set findRng = Sheets("Master Trainings").Range("A:A")
Set foundRng = findRng.Find(Range("D2").Value)
Worksheets(TextBox1.Value).Range("E2").Formula = "=" & Worksheets(TextBox1.Value).Range("B9") & "*" & foundRng.Offset(0, 1).Value

2 个答案:

答案 0 :(得分:0)

已修改:在'中交换了!"=B9*'Master Trainings!'"

尝试一下:

Worksheets(TextBox1.Value).Range("E2").Formula = "=B9*'Master Trainings'!" & foundRng.Offset(0, 1).Address(False, False)

答案 1 :(得分:0)

这可以为我工作。我将C1指定为Variant只是为了使调试更容易。它是代码第7行之后的一个单元格,其中包含我想要的文本的行和列+1的地址(即,它在同一行的右侧查找一个单元格)。然后,我指定范围和公式,其中C1是公式中想要的单元格。

     Name        Date                          Address Country
0  Jessie  01/08/2018                     738 Maple Ln      US
1     Joe  01/15/2018  483 Watergate Pl, Annapolis, MD      US
2   Frank  01/04/2018       934 West Ave, Franklin, TN      US