在活动单元格的右侧插入一列,并从上一列自动填充公式

时间:2017-10-30 18:32:18

标签: excel vba excel-vba

我是这个论坛的新手,也是VBA的新手,所以如果需要澄清,请告诉我并提前道歉!

我正在尝试使用VBA在活动单元格的右侧插入一个新列,并使用左相邻列中的所有公式格式化新列。我可以通过使用复制和粘贴功能来执行此操作,但运行代码时Excel非常慢。

    if (Convert.ToDouble(input) == roundedMoles)
    {
        MessageBox.Show("Good");
        textBox1.Clear();
    }
    else
    {
        MessageBox.Show("Bad");
        textBox1.Clear();
    }

此代码也不会格式化新的所需列,除非我运行代码两次,并插入了另一列。

我希望能够将代码用于一系列行。例如从6到24。

2 个答案:

答案 0 :(得分:1)

使用正确的XlInsertFormatOrigin枚举和FillRight。

Option Explicit

Sub MyInsertColumn()

    With Selection.EntireColumn.Offset(0, 1)
        .Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow
        .Offset(0, -1).Cells(6, 1).Resize(3, 1).FillRight
    End With

End Sub

这假设您在列中要复制公式的位置。

答案 1 :(得分:0)

我完全不明白你的问题,但似乎这是你需要的代码

Selection.EntireColumn.Offset(0, 1).Insert Shift:=xlToRight
Range(Cells(6, Selection.Column), Cells(24, Selection.Column)).Select
Selection.Copy
Selection.Offset(0, 1).PasteSpecial (xlPasteFormulasAndNumberFormats)
Application.CutCopyMode = False

我让它变得简单易懂。我建议按F8并逐行运行代码以了解它是如何工作的