VBA - 在当前列的所有活动行中输入公式(当您不知道列字母或列是否更改时)

时间:2015-04-24 11:01:41

标签: excel-vba vba excel

大家好,这是我的第一篇文章,我想知道你是否可以帮助我。

我想编写一个宏/脚本,允许我根据I&#列,将公式放入当前所选列的一列(对于当前列的所有活动行) 39;已选中。我遇到的问题是我不会总是知道当前的列字母(因为我的选择从工作表更改为工作表)。

举个例子: 我的一个列目前包含日期,日期以不同的格式输入,有些用"。"分隔,有些用" - ",有些用空格等等。我有一个处理这个问题的公式,所以我需要将这个公式放在所选列(具有日期)右侧的列中。

当我指定列字母时,我能够这样做,但是如果它改变了则不能。

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

您可以使用ActiveCell.Offset(0,1).Value = Variable

这意味着,无论当前单元格是什么,您都可以移动并“选择”将值放入已激活的单元格的右侧单元格中。您可以使用循环移动选择。

Do
    Workbooks("Yur workbook name").Worksheets(1).Range(Adress you want to start adding).Offset(0, 1).formula = "=FORMULA"

    i = i + 1
    ActiveCell.Offset(1, 0).Activate
Loop While i <= max_row

编辑:第二次

将公式放在一个单元格中,然后说C1

'Select a range 
Set take = Worksheets(1).Range("C1")
take.Copy 'copy the formula

Worksheets(1).Paste Destination:=Worksheets(1).Range("B1:B10") 

只要你想要它就会复制你的功能

答案 1 :(得分:0)

放手一搏,

Sub SomethingNeat()
    Dim rng As Range, x
    x = Selection.Column
    On Error Resume Next
    Set rng = Columns(x).SpecialCells(xlCellTypeConstants, 23)
    If Not rng Is Nothing Then rng.Offset(, 1) = "'=MyFormula"
End Sub