【发布时间】:2017-04-29 07:36:38
【问题描述】:
我使用 VBA 已经有一段时间了,现在我陷入了这个问题:
假设我在每个单元格中都有 A、B、C、D、E... 作为工作表的名称&& 名称与每个工作表的名称 100% 匹配(工作表 A、B、C...)
那么如何使用 VBA 将公式输入到 COL2 中,如 ='sheetname!'$B$2(Cell address) 这样的形式? 公式里面的sheetname对应COL1(&&每个工作表的名字)
通常 VBA 只返回值,但这次我需要 REFERENCE 打印公式。
----COL1----COL2
R1-- A ='A!'$B$2
R2-- B ='B!'$B$2
R3-- C ='C!'$B$2
R4-- D ='D!'$B$2
R.-- ... ='...!'$B$2
在实际情况下,工作表名称非常混乱,不像结构化的字母&数字,
非常感谢您的建议!谢谢!
我想两张图片会更好地说明我的问题:
似乎我还不能嵌入图像......但无论如何...... 所以我的目标是: 1.从 Name(C) col 中获取名称。 2.将公式写在Supplier(D) col。 ='(Col.C 中的名称)'!$B$2
注意:col.C中的名称对应工作表。(图2)
*我原来的计划是:
对于工作表中的每个工作表
If wrksheet.Index >= 10 Then
sheetname = wrksheet.Name #1 pass wrksheet's name into sheetname variable
sum.Cells(i, 4).formula = "='sheetname!'$B$2" #2 input current worksheet's cell(B2) and print into worksheet sum's cell(i,4)
End If
i=i+1
但是,显然,这个技巧 (#2) 不起作用.... 那么如何在获取工作表名称后自动编写公式? 希望这对你们来说清楚吗?
=========================================== 子公式()
Dim s As Worksheet, w As Worksheet
Set s = Worksheets("Summary")
Dim i, stname
i = 1
For Each w In Worksheets
If w.Index > 1 Then
stname = w.Name
s.Cells(i, 4).formula = "=" & stname & "!$B$2"
End If
i = i + 1
Next w
结束子
但代码报告问题...这是为什么呢?
【问题讨论】:
-
你能给我们看一些代码吗?它使帮助您变得更容易。
标签: excel excel-formula worksheet-function worksheet vba