工作簿(名称)Excel VBA

工作簿(名称)Excel VBA,excel,vba,Excel,Vba,我在一个主excel工作簿中工作,在那里我保存了所有数据。我有一个按钮,允许用户通过查看其他工作簿来更新正在进行的数据的“状态”。单击它时,它将打开包含工作簿的Excel文件,并读取与数据状态对应的列。如果包含工作簿的Excel已在同一“选项卡”中打开,它将读取所需信息,并返回主文件。如果Excel文件未打开,它将打开它,然后在结束时关闭它。我目前面临的问题是,如果文件是在不同的“选项卡”中打开的,则不允许我使用Excel文件的名称将其指定为工作簿 check = IsWorkBookOpen(

我在一个主excel工作簿中工作,在那里我保存了所有数据。我有一个按钮,允许用户通过查看其他工作簿来更新正在进行的数据的“状态”。单击它时,它将打开包含工作簿的Excel文件,并读取与数据状态对应的列。如果包含工作簿的Excel已在同一“选项卡”中打开,它将读取所需信息,并返回主文件。如果Excel文件未打开,它将打开它,然后在结束时关闭它。我目前面临的问题是,如果文件是在不同的“选项卡”中打开的,则不允许我使用Excel文件的名称将其指定为工作簿

check = IsWorkBookOpen("\\\Éclairage\Demandes\" + nomSuivi)

If check = True Then  

Set suivi = Workbooks(nomSuivi)  'nomSuivi is the name of the Excel file ex: file.xls 




    TotalRows = suivi.Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row    
    ReDim mandat(1 To TotalRows)
    ReDim etat(1 To TotalRows)

    For i = 2 To TotalRows
     mandat(i - 1) = suivi.Worksheets("Feuil1").Cells(i, 1).Value   
     etat(i - 1) = suivi.Worksheets("Feuil1").Cells(i, 5).Value   
    Next i



你是说它在另一个Excel实例中打开了吗?如果是这样,这可能会有所帮助:我提供了一个简单的解决方案。也许不是最好的,但它为我想做的事提供了窍门。我要做的是,如果set suivi行导致错误(因为文件在另一个实例中打开),我只需在同一个实例中打开文件,然后关闭它。