从一行复制特定单元格并粘贴到另一个工作表上的不同单元格中

时间:2015-01-11 00:14:18

标签: excel-vba copy-paste vba excel

我在这个网站上看到很多类似的问题,但没有人回答。不知道为什么。可能太麻烦了。不过不适合我。我对VBA并不擅长,并且可能不需要再选择它多年。希望有人能够花时间和帮助。

我在工作簿中有两张纸。 Sht1包含按行组织的数据。每天填充一行,在项目结束时总行数将为300到400。 Sht2代表文档形式。该表单上的大多数单元格包含的静态信息不会从一个报表更改为另一个报表。除了一些必须从Sht1填充的动态单元格。我打印表格并提交硬拷贝。如果硬拷贝丢失或数据由于某种原因发生变化,我可能会再次回来打印一些报告。重点很明确 - 我不想保留和管理400个Word文件。这真是太痛苦了。

我想要的是将代码分配给命令按钮,该按钮将调用输入框。我输入行ID(我猜行应该从1到N编号)。然后VBA从该行的某些单元格中获取数据,比如说Sh5上的C5(当ID = 4时),E5和H5,并将它们复制到Sht2上的单元格B5,D5和D7。

非常感谢您阅读本文的时间,如果您能提供帮助,还会获得更多赞赏。 谢谢。

1 个答案:

答案 0 :(得分:1)

这是一些非常简单的代码,用于将数据从Sheet1上的一个单元格复制到Sheet2上的另一个单元格。

Sub Macro1()

    Dim iRow As Integer

    iRow = InputBox("Which row?")

    Worksheets("Sht2").Cells(5, 2).Value = Worksheets("Sht1").Cells(iRow, 3).Value
    Worksheets("Sht2").Cells(5, 4).Value = Worksheets("Sht1").Cells(iRow, 5).Value
    Worksheets("Sht2").Cells(7, 4).Value = Worksheets("Sht1").Cells(iRow, 7).Value

End Sub

这将从Sheet1,C,E和H列上指定的行中获取值。 它将这些值分别复制到Sheet2,单元格B5,D5,D7上。请注意Cells(row, col)的参数顺序,它与您将习惯使用的Excel单元格引用相反。换句话说,请记住Cells(1, 3)实际上是C1。

这就像我能做到的那么简单,但它应该让你朝着正确的方向前进。