【发布时间】:2017-09-13 19:10:49
【问题描述】:
我正在寻找有关如何编写执行以下操作的宏的建议。我想它很容易做到,但我无法弄清楚。提前致谢!
开始
- 在活动工作表中(在工作簿中,我在 [标题更改但每次格式相同] 中运行此宏),复制单元格 B9。粘贴到我正在使用的另一个工作簿的下一个空白行的 A 列[每次运行此过程时可以具有相同的标题,或者只是打开的另一个工作簿]
- 在活动工作表中(在我运行此宏的工作簿中),复制单元格 B8。粘贴到上面标识的行的 B 列中。
- 在活动工作表中(在我运行此宏的工作簿中),复制单元格 B12。粘贴到上面标识的行的 C 列中。
- 在活动工作表中(在我运行此宏的工作簿中),复制单元格 A17:E17。粘贴到上面标识的行的 D:H 中。
- 在活动工作表中(在我运行此宏的工作簿中),复制单元格 A17:E17。粘贴到上面标识的行的 D:H 中。
- 在活动工作表中(在我运行此宏的工作簿中),复制单元格 G17:N17。粘贴到上面标识的行的 I:P 中。
结束
鉴于我缺乏 vba 编码能力,我正在尝试录制宏然后进行调整。我已经尝试了尽可能多的选项,因为我可以在谷歌上找到。以下似乎是最好的,但不起作用。 (注意:我从上面选择的第 1 点开始选择 B9)。
Sub Copy_Timesheet()
'
' Copy_Timesheet Macro
'
'
Selection.Copy
Windows("WorkbookB").Activate
Find_Blank_Row()
Dim BlankRow As Long
BlankRow = Range("A65536").End(xlUp).Row + 1
Cells(BlankRow, 1).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Activate
ActiveCell.Offset(3, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("WorkbookB").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Activate
ActiveCell.Offset(-4, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("WorkbookB").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Activate
ActiveCell.Offset(9, -1).Range("A1:E1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("WorkbookB").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Activate
ActiveCell.Offset(0, 6).Range("A1:H1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("WorkbookB").Activate
ActiveCell.Offset(0, 5).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
【问题讨论】:
-
编写宏的最佳方式是....开始。写一些东西。如果它没有达到您的预期,请向我们展示您所做的并询问我们为什么它不起作用。如果您只是要求我们给您完成的代码,您将不会学习如何做到这一点。
-
谢谢。请参阅上面的修改。
-
不要使用 select 或 activate 它们是糟糕的编码风格