首页 > 解决方案 > 将工作表移动到具有给定变量名称和变量工作表计数的工作簿

问题描述

我正在尝试编写一个宏,它将工作表 ( order_line_list) 从其工作簿移动到另一个工作簿 ( Accrual Planning by Month 2020) 的最后一张表之后的位置。

按月计算的应计计划工作簿文件名不是恒定的,因此我已将其设置为代码中的变量。随着新工作表的添加,该工作簿的最后一张工作表也会每月更改。

如果我使用完整的文件名并指定一个工作表位置(在工作表 2 之后),我可以让宏工作。但是,如果我尝试使用文件名和工作表计数变量来执行此操作,则会收到以下错误:

Run-time error 1004: Move Method of Worksheet Class Failed

我尝试改用 Copy 方法,但我只收到相同的 Method Failed 错误。

我花了几个小时研究并试图解决这个问题,但一直没能做到。我是 VBA 的新手,所以可能有一种更简单的方法来做我想做的事情。下面是我的代码。我有文件,但似乎无法弄清楚如何附加它们。您的帮助将不胜感激。

Function wbname(MatchName As String) As String

   Dim wb As Workbook

For Each wb In Workbooks

   If wb.Name Like MatchName Then

    wbname = wb.Name

    Exit Function

  End If

Next wb

   wbname = ""

End Function

Sub Macro302()

' Move Sheet to Accrual Planning by Month file

Accrual = wbname("Accrual*")

Windows("order_line_list.csv").Activate

    Sheets("order_line_list").Move After:=Workbooks(Accrual).Sheets.Count

    'Sheets("order_line_list").Copy After:=Workbooks(Accrual).Sheets.Count

'Windows("order_line_list.csv").Close SaveChanges:=False

End Sub

标签: excelvba

解决方案


推荐阅读