尝试在 VBA 中创建子程序

尝试在 VBA 中创建子程序

我有一个任务,要制作一个具有以下要求的子程序:

□ 创建新工作簿
□ 复制 Excel 文件中“2. 格式”选项卡中包含的表格
□ 将表格粘贴到新工作簿中
□ 将新工作簿中的工作表选项卡重命名为“表格数据”
□ 使用以下名称将新工作簿保存到桌面上创建的文件夹中:“_ Excel 评估 VBA”
□ 将工作簿保存为启用宏的工作表
□ 使文件夹路径通用,以便其他人也可以创建此文件夹
□ 在文件标题中,使用日期格式功能添加今天的日期,格式如下:dd-mmm-yyyy

我目前拥有的代码是这样的:

Sub Req1()
  Set NewBook = Workbooks.Add
  With NewBook
  .Title = "Table Data"
  Worksheets("2. Formatting").Activate
  Range("B3:R13").Copy Destination:=Worksheets(“Table Data”).Range(“A1”)
  ActiveWorkbook.SaveAs Filename:="C:\Users\Public\Desktop\Starks_Craig  Excel Assessment VBA\Starks_Craig  Excel Assessment VBA.xlsm" & Format(Date, "ddmmyyyy")
End Sub

“Range("B3:R13").Copy Destination:=Worksheets(“Table Data”).Range(“A1”)”行显示为红色,表示编译错误,我不知道原因。此外,我不确定我的代码是否全面满足此要求。我寻求帮助,因为我对 VBA 还很陌生。

此外,我应该:

  1. 从“开发人员”选项卡创建一个按钮,以便您的经理可以轻松运行您的宏
  2. 将按钮分配给你创建的第一个子程序
  3. 对第二个子程序重复 1 和 2

我不确定该怎么做,因为当我尝试选择我制作的宏时,它给出了一个错误。任何帮助都将不胜感激。

答案1

首先快速回答一下:你犯了一个常见错误。看来你在文字处理器(如 Microsoft Word)中输入了一些代码,并将其复制到 VBA 编辑器中:

  Range("B3:R13").Copy Destination:=Worksheets(“Table Data”).Range(“A1”)
        ↑      ↑                               ⇑          ⇑        ⇑  ⇑
          good                                      bad            bad

前两个引号字符是正确的代码引号。后四个引号是文字处理引号,会导致代码错误。

相关内容