首页 > 解决方案 > 打开多个文件时如何返回我的主文件

问题描述

我想检查其他文件中是否存在某些值,以及是否要更改我的主文件中的重叠单元格——比如为每个 X 添加 1——但不关闭刚刚打开的另一个文件。

Sub ex12()
Dim StdPr As String
Set myrng = Range("B5:P13")

StdPr = Dir("C:\ex12\*.xls")
Do While StdPr <> ""

Workbooks.Open ("C:\ex12\" & StdPr)
  For Each cl In myrng
      If cl.Value = "X" Then
         ' the missing line #
      End If
  Next
     Workbooks(StdPr).Close savechanges:=False
     StdPr = Dir
Loop


 End Sub

标签: excelvba

解决方案


像这样的东西:

Sub ex12()

    Dim StdPr As String, wb as workbook
    dim shtMaster as worksheet

    set shtMaster = thisworkbook.sheets("Master")   'for example

    StdPr = Dir("C:\ex12\*.xls")
    Do While StdPr <> ""

        Set wb = Workbooks.Open("C:\ex12\" & StdPr)
        For Each cl In wb.worksheets(1).Range("B5:P13").Cells
              If cl.Value = "X" Then
                  with shtMaster.Range(cl.address())
                      .value = .value +1
                  End with   
              End If
        Next
        wb.Close savechanges:=False
        StdPr = Dir()
    Loop

 End Sub

推荐阅读