VBA-从另一个工作簿调用 [英] VBA - Calling from another workbook

查看:164
本文介绍了VBA-从另一个工作簿调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试基于另一个工作簿工作表中的数据删除工作表-通过比较和访问另一个工作簿工作表中的数据,但是它不起作用.如果工作表位于同一工作簿中,则可以执行此操作,但是我不想每次都导入工作表.

Trying to delete sheets based on data from another workbook sheet - By comparing and accessing data from another workbook sheet, however its not working. I was able to do it if the sheet was in the same workbook, however i do not want to import the worksheet every time.

到目前为止,代码,我的问题是从另一个工作簿工作表调用.

Code so far, My problem is calling from another workbook sheet.

sub delete()
     Dim wb As Workbook
     Dim wks As Worksheet
     Dim MyRange As Range
     Dim Cell As Range
     Set wb = Workbooks("name.xlsx")
     Set wks = wb.Worksheets("allnames")
     With wks
        Set MyRange = wks.Range("A1", .Cells(.Rows.Count, "A").End(xlUp))
     End With
     On Error Resume Next
     Application.DisplayAlerts = False
     For Each Cell In MyRange
         Sheets(Cell.Value).Delete
     Next Cell
     Application.DisplayAlerts = True
     On Error GoTo 0
End Sub

预先感谢

推荐答案

也许您正在追求这样的东西:

maybe you're after something like this:

Option Explicit

Sub delete()
     Dim toDeleteSheetsWb As Workbook
     Dim Cell As Range

     Set toDeleteSheetsWb = Workbooks("WorkbookWithSheetsToDelete.xlsx") '<-- set the workbook whose sheets will be deleted (change "WorkbookWithSheetsToDelete.xlsx" to its actual name)
     With Workbooks("name.xlsx").Worksheets("allnames") '<-- reference the worksheet from which to read worksheets names to be deleted in "WorkbookWithSheetsToDelete.xlsx" workbook
        Application.DisplayAlerts = False
        For Each Cell In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp))
            toDeleteSheetsWb.Sheets(Cell.Value).delete
        Next Cell
        Application.DisplayAlerts = True
     End With
End Sub

这篇关于VBA-从另一个工作簿调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆