我是这个论坛的新手,也是VBA的新手,所以如果需要澄清,请告诉我并提前道歉!
我正在尝试使用VBA在活动单元格的右侧插入一个新列,并使用左相邻列中的所有公式格式化新列。我可以通过使用复制和粘贴功能来执行此操作,但运行代码时Excel非常慢。
if (Convert.ToDouble(input) == roundedMoles)
{
MessageBox.Show("Good");
textBox1.Clear();
}
else
{
MessageBox.Show("Bad");
textBox1.Clear();
}
此代码也不会格式化新的所需列,除非我运行代码两次,并插入了另一列。
我希望能够将代码用于一系列行。例如从6到24。
答案 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并逐行运行代码以了解它是如何工作的