2011-12-12 72 views
1

我有这些公式activesheet.cells(3,"C").Formula = "=F2"更新单元格中的公式,如果列值存储在一个变量

,但我希望公式是这样的activesheet.cells(3,"C").Formula = "=lastcolumn2"

所以我找到了第6行的最后一列

last_col = ActiveSheet.Cells(6, Columns.Count).End(xlToLeft).Column 

last_col中有10值。

我已插入公式像这些

ActiveSheet.Cells(3,"C").Formula = "=" & last_col & "1" 

但这些插入值"=101",但并不像公式"=J1"(这是我所期望的) 如何使这一点。任何帮助是极大的赞赏。

回答

2

您的解决方案将工作为您提供R1C1符号代替LC1工作。

这里是另一种方式来做到这一点:

ActiveSheet.Cells(3, 1).Formula = "=" & Cells(1, last_col).Address 
+0

+1此作品非常好:)对不起,类似的答案,它没有打他,直到我写和提交了所有。 – aevanko

+0

'伟大的思想思考相似'(这是我从一个伟大的法语谚语中找到的最好的翻译,我希望它在英语中仍然有意义:)) – JMax

+0

让人感觉良好:)我希望niko自从你第一次就给你接受到一拳^^ – aevanko

1

我解决我自己的问题,抱歉,我刚发现这样做时,我不小心打开了我的透视表报表和尝试这些方式,它的工作方式。

ActiveSheet.Cells(3, 1).Formula = "=R" & "1" & "C" & last_col 

希望这些帮助别人,但请让我知道,如果有任何其他方式来做到这一点。

感谢

3

您也可以使用。地址,当你抓住last_col(轻微自旋JMAX的答案 - 对不起,我才意识到这是非常相似,我应该只是增加他的评论)。如果你不希望的绝对路径(如J1而不是附加$ J $ 1),你可以使用:

last_col = Cells(6, Columns.Count).End(xlToLeft).Address(False, False) 
Cells(3, 3).Formula = "=" & last_col 
+0

绝对路径的好精度 – JMax

+0

我不能接受这两个,所以只是一个+1但JMAX击败你哈哈:) – niko

0

我不明白您的问题或答案。这并不重要,如果你是幸福的,但我怀疑你得到你想要靠运气的影响。

原始配方为activesheet.cells(3,"C").Formula = "=F2"。这有C3单元格设置为小区F2的值的效果。如果小区F2改变时,小区C3的变化相匹配。

你想C3单元格设置为你第一次使用第2行的最后使用单元格的值:

last_col = ActiveSheet.Cells(6, Columns.Count).End(xlToLeft).Column 

这台last_col到最后使用的列的数量在6行你不解释为什么你正在寻找6行的最后使用的电池,而不是2行的最后使用的电池是你说你想要的。

last_col的值为10.表达式"=" & last_col & "1"的值为=101,因为Excel不知道要将10转换为J

你说你是幸福的:

ActiveSheet.Cells(3, 1).Formula = "=R" & "1" & "C" & last_col 

但是这台A3单元格与行= 1,列=行的最后使用的6列

没有我的单元格的值可以找到你的问题或你的答案表明这是你想要的。

如果你想A3单元格设置为第2行中最后使用的单元格的值,因为它是在宏观运行使用的时间:

Dim last_col As Integer 

    With ActiveSheet 

    ' Find the column number of the last used cell in row 2 
    last_col = .Cells(2, Columns.Count).End(xlToLeft).Column 
    ' Set cell C3 = Now value of last of row 2 
    .Cells(3, "C").Value = .Cells(2, last_col).Value 

    End With 

如果你想单元C3的值来改变每次排2改变上次使用的单元格的值使用:

Dim LastUsedCellAddress As String 

    With ActiveSheet 

    ' Find address of last used cell in row 2 
    LastUsedCellAddress = .Cells(2, Columns.Count).End(xlToLeft).Address 
    ' Set cell C3 = Current value of last of row 2 
    .Cells(3, "C").Formula = "=" & LastUsedCellAddress 

    End With 

希望以上给出了足够的解释让你了解不同报表的效果,让你可以得到你今天想要什么,在将来。

+0

这个答案重复其他答案中的信息。他们在我写这篇文章的时候被寄出,所以直到我寄出这封信之后才看到。由于在这个答案中有额外的信息,我将离开它。 –

相关问题