2017-08-17 115 views
0

我已经启动了一个Excel宏,在选择后插入一个空行,但我想要空白rowheight = 6。我是VBA新手,但很想学习。如何插入特定高度的空行进行选择?

这是针对正在工作的项目。

Dim Rng As Range 
Dim WorkRng As Range 
Dim FirstRow As Integer, xRows As Integer, xCols As Integer 
On Error Resume Next 
Set WorkRng = Application.Selection 
Set WorkRng = Application.InputBox("Range", WorkRng.Address, Type:=8) 
FirstRow = WorkRng.Row 
xRows = WorkRng.Rows.count 
xCols = WorkRng.Columns.count 
Application.ScreenUpdating = False 
WorkRng.Cells(xRows, 1).Resize(1, xCols).Select 

Do Until Selection.Row = FirstRow 
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    Selection.Offset(-1, 0).Select 

Loop 

Application.ScreenUpdating = True 
End Sub 
+2

从右脚开始。停止使用错误恢复下一步,直到你知道如何。 http://www.cpearson.com/Excel/ErrorHandling.htm – niton

回答

0

中插入行,使用如下代码rows(3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove并更改列宽使用.ColumnWidth属性。下面的代码插入您提到的间隔柱。

Option Explicit 
Sub insertSpacerColumns() 
Dim r As Range, i As Integer, startCol As Integer, numSpacers As Integer 
Set r = Application.InputBox("Select columns", , , Type:=8) 
i = r(, 1).Column + 1 
numSpacers = r(, r.columns.Count).Column - i + 1 
Do 
    columns(i).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    columns(i).ColumnWidth = 1 
    i = i + 2 
    numSpacers = numSpacers - 1 
Loop Until numSpacers = 0 
End Sub 
1

你想要的.RowHeight()属性:

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
Selection.Offset(1,0).RowHeight = 6 
Selection.Offset(-1, 0).Select 

...但是请注意,这是最好的Avoid using .Select/.Activate

+0

谢谢!在选择一组列后,我也无法添加间隔列,而且我还希望它们是特定的宽度。 – Wendi