首页 > 解决方案 > 根据单个单元格值将项目复制/粘贴到另一张纸上

问题描述

我正在尝试创建一个宏,该宏根据单个单元格的值 (B2) 将我的“后端”工作表的(A 列)中的项目的副本/粘贴循环到我的“后端 2”工作表上。为了提供一些背景信息,我已经预测了建筑楼层的数据,并尝试重新格式化我的电子表格,以便 Tableau 将日期读取为“维度”。为了实现这一点,我需要一个宏,在我的预测中的 15 个月内将我的 83 层数据复制/粘贴 15 次。我还想要参考单元格 (B2),以便我可以在需要时将月份添加到预测中。谢谢!

复制自:
在此处输入图像描述

粘贴到:
在此处输入图像描述


当前答案允许我复制一种值类型“地板”,但我想知道是否可以运行一个宏来根据复制量复制/粘贴整行。请参考以下示例。我在工作表 1 上有 3 个独特的团队,我想根据工作表 2 上的单元格 L2 将它们复制四次。

之前(表 1) 在此处输入图像描述

之后(表 2) 在此处输入图像描述

标签: vbaexcelexcel-2007copy-paste

解决方案


根据我的测试,文字代码类似于以下内容。将 soucreSheet 和 targetWorksheet 修改为您的

Sub Test11()

Dim rowCount As Long
Dim sourceSheet As Worksheet
Dim targetWorksheet As Worksheet
Dim copyTimes As Integer

  Set sourceSheet = Worksheets("Sheet11")
  Set targetWorksheet = Worksheets("Sheet12")
    rowCount = targetWorksheet.Cells(Rows.Count, 1).End(xlUp).row

    copyTimes = CInt(sourceSheet.Cells(2, 2).Value)

    For i = 2 To sourceSheet.UsedRange.Rows.Count
        MsgBox sourceSheet.Cells(i, 1).Value
        sourceSheet.Cells(i, 1).Copy
        For j = 1 To copyTimes
            targetWorksheet.Activate
            targetWorksheet.Cells(rowCount + 1, 1).Select
            targetWorksheet.Paste
            rowCount = rowCount + 1
        Next

            sourceSheet.Activate
    Next

    Application.CutCopyMode = False
End Sub

推荐阅读