将列和粘贴复制到同一工作表中的次数可变

时间:2017-06-21 12:45:04

标签: excel vba excel-vba

我在疯狂尝试在VBA中做最简单的事情。

我想自动将工作表上的C列复制多次到相邻的列D,E,F ......等。相同的工作表。

单步执行代码,我将它复制到正确的列(“C:C”),但无法通过粘贴,偏移或目标将其粘贴到列D等,以获取可变数量的实例。

这是我正在使用的代码。假设所有Dim和Set语句都已完成,因为它只是较大Sub的一小部分。

    sht02AnalysisSummary.Activate

    For i = 0 To AddCol
        i = i + 1
        lLastCol = sht02AnalysisSummary.Range("C3").End(xlToLeft).Column
        rangeCopy.Copy
        Column.Offset("0,lLastCol+i").Paste
    Next i

    sht01CoverPage.Activate

现在这种方法有效,但是当AddCol设置为3时,结果是跳过D列并且只重复粘贴一次(进入E列),而它应该粘贴到D,E& F.任何指针都将非常感激。

2 个答案:

答案 0 :(得分:0)

这应该有效:

Sub CopyPaste()
Dim sht As Worksheet
Set sht = Worksheets("Sheet1")
With sht
    .Columns(3).Copy .Columns(4)
End With
End Sub

答案 1 :(得分:0)

  1. 不要在For ... Next中手动编写迭代变量;你将破坏内置的迭代和进展。

  2. app.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) { $stateProvider .state("patents", { url: "/patents", templateUrl: "templates/patents/patent-nav.htm", controller: "patentListCtrl" }) .state("patents.list", { url: "/list-patents", templateUrl: "templates/patents/list/list-patents.htm", controller: "patentListCtrl" }) .state("patents.list.item", { url: "/:id", templateUrl: "templates/patents/list/patent-item.htm", params: { id: null, clientRef: null, renewalStatus: null, costBandEndDate: null, renewalCostNextStage: null, renewalDueDate: null, }, controller: "patentItemCtrl" }) 让我对目的地感到困惑(或者是来源......?)。也许这应该是xlToLeft或者你应该在开始向左看之前进一步开始?

  3. 您应该能够将一个列一次粘贴到三个连续的目标列中。

    xlToRight