Excel VBA:在另一张表中设置不连续范围(多行/列)等于连续范围(多行/列)

时间:2013-02-08 00:07:00

标签: excel vba loops set range

目标:编写将设置不连续范围的VBA sub,特别是13列 - 每隔一列 - 等于点击事件时13列宽和132行长的连续数据范围。

我有两份财务报表,我希望能够并排比较。单击活动x按钮,在财务报表1的列之间插入列,然后从财务报表2(包含在另一个工作表中)中获取列,并将它们显示在财务报表1中相应列的旁边。

仅使用VBA代码。拿什么是

总计| 1月| 2月| 3月....并使其成为

汇总|总计|一月|一月|二月|二月|三月|三月.....

我开发的当前代码运行速度极慢,并且出于某种原因在每列之间插入“June”列。

帮助!

Sub BudgetBudgetCheck_Click()

If BudgetActual.Value = "True" And BudgetBudgetCheck.Value = "True" Then
    For colx = 6 To 36 Step 2
    Columns(colx).Insert shift = xlRight
    Next
    End Sub

Private Sub BudgetActual_Click()
For i = 4 To 28 Step 2
For j = 2 To 14
Columns(i).Value = Worksheets("P&L - Monthly Budget").Columns(j).Value
Next
Next
End If
End Sub

1 个答案:

答案 0 :(得分:0)

Dim rngOne as range, rngTwo as range, x as long, col_offset

Set rngOne = worksheets("statement1").Range("A1").resize(132,13)
Set rngTwo = worksheets("statement2").Range("A1").resize(132,13)

with worksheets("summary")
    .usedrange.clearcontents
    for x=1 to 13
        col_offset = (x-1)*2      
        rngOne.columns(x).copy .cells(1,col_offset+1)
        rngTwo.columns(x).copy .cells(1,col_offset+2)
    next x
end with