2016-12-14 33 views
0

我一直在使用VBA了一段不同的工作表,现在我被困在这个问题上:如何输入公式进入细胞,同时援引

说我有A,B,C,d,E ......在每个小区的工作表的名称& &名称匹配100%的每个工作表的名称(工作表A,B,C ...)

那么,如何使用VBA输入到公式COL2,像='的形式SHEETNAME !'$ B $ 2(手机地址)? 内公式SHEETNAME相当于COL1(& &每个工作表的名称)

通常只VBA返回值,但是我通过打印公式这个时候需要参考。

---- ---- 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

实际情况下,工作表nam e非常混乱,不像结构化字母& num,

您的建议非常感谢!谢谢!

我猜两张照片可以说明我的问题更好:

overview worksheets

似乎我不能嵌入图像yet..but反正... 所以我的目标是: 1.Get名称来自名字(C)col。 2.在供应商(D)栏中填写公式。 = '(在Col.C名)' $ B $ 2

!注意:在col.C名称对应于工作表(图片2)

*我原来的计划是:

对于每个wrksheet在工作表中

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 

末次

但代码报告的问题......这是为什么?

+0

你能告诉我们一些代码吗?它使您更容易帮助您。 –

回答

0

很难理解你想问什么,但我会尽我所能解决你的问题。将来,建议将代码与您的问题一起列入。

要将公式输入到单元格中,可以使用Range.Formula方法。这里有一个很好的解释: - https://msdn.microsoft.com/en-us/library/office/ff838835.aspx

然而,我的理解是,你正在寻找输入公式作为文本,以便您可以稍后参考它。最简单的方法是使用Range.Value方法。这说明如下: - https://msdn.microsoft.com/en-us/library/office/ff195193.aspx

但是,如果你只是在格式=FORMULA公式插入Range.Value你会发现,Excel将其解释为一个公式,因此试图以显示其解决方案的价值。解决这个问题的最简单方法是在公式中的等号之前加上撇号,如下所示: - '=FORMULA

这会强制Excel将公式仅解释为文本。该单元格将以可读格式显示您选择的公式。因此,您的解决方案看起来像这样: -

Cells(1,2).Value = "'='" & Cells(1,1).Value & "!'$B$2" 

借助于此Cells(1,1)包含您的工作表的名称,并Cells(1,2)将成为你的参考公式。

为了以后引用这个单元格并将它用作公式,您需要删除我们刚刚添加的撇号。有很多方法可以做到这一点;如果你需要额外的帮助,请问。

+0

感谢您的建议“'='”&sheetname&“!'$ B $ 2”是正确的形式! – leveygao

+0

没问题 - 很高兴你把它分类! – Scarfe