相关文章推荐
帅气的山羊  ·  With statement (VBA) ...·  2 月前    · 
爱搭讪的大蒜  ·  如何在EXCEL ...·  2 周前    · 
淡定的可乐  ·  Excel VBA转置表格 - ·  2 周前    · 
沉着的汉堡包  ·  Enable or Disable the ...·  6 月前    · 
爱喝酒的荔枝  ·  栅格 Grid - Ant Design·  9 月前    · 
道上混的沙发  ·  Python ...·  10 月前    · 
安静的梨子  ·  docker 关闭自动重启-掘金·  1 年前    · 

第1种:不管工作簿是否已经打开,直接打开

  • 现在新版的office已经修改为,允许重新打开已经打开的EXCEL文件
  • 如果文件已经打开,且未被修改,直接重新再打开1次
  • 如果文件已经打开,但是已经被修改,会弹提示,确认后重新再打开
Sub williamDing31()
Dim wb1 As Object
Set wb1 = Workbooks.Open("C:\Users\Administrator\Desktop\test1.xlsm")
Debug.Print wb1.Worksheets("sheet1").Cells(5, 5)
End Sub

第2种:比较稳妥的方案---错误捕捉的思路

  • 先直接假设文件已经打开
  • 如果没打开,错误代码9,则补充打开
Sub williamDing30()
Dim wb1 As Object
On Error Resume Next
Set wb1 = Workbooks("C:\Users\Administrator\Desktop\test1.xlsm")
If Err.Number = 9 Then
  Set wb1 = Workbooks.Open("C:\Users\Administrator\Desktop\test1.xlsm")
End If
Debug.Print wb1.Worksheets("sheet1").Cells(5, 5)
End Sub

on error resume next

myFileName = ”sales.xlsx"

stPath = ThisWorkbook.Path

stFullName = stPath & "\" & myFileName 

Set x = Workbooks.Open(Filename:=stFullName)

if err.number=1004 then 

……‘处理代码

end if

第1种:不管工作簿是否已经打开,直接打开现在新版的office已经修改为,允许重新打开已经打开的EXCEL文件 如果文件已经打开,且未被修改,直接重新再打开1次 如果文件已经打开,但是已经被修改,会弹提示,确认后重新再打开Sub williamDing31()Dim wb1 As ObjectSet wb1 = Workbooks.Open("C:\Users\Admini...
判断Excel表格是不已经打开 在通过VBA代码打开或是关闭文件时,需要判断文件是否已经打开,以便做出适当的操作,避免已打开的文件被误保存,下面的代码主要用来确认文件是否已的打。 Function SheetIsExist(strExcleName As String, strSheetName As String) As Boolean '//判断名称的工作是否已经在指定的Excel文件中存在 Dim shtSheet As Worksheet SheetIsExist = False
通过遍历已经打开工作簿 *bookName需要加文件后缀名,如.xlsx Public Function IsWorkbookOpened(bookName As String) Dim wb As Workbook IsWorkbookOpened = False For Each wb In Application.Workbooks If wb.Name = bookName Then IsWorkbookOpened = T
打开工作簿取得其他工作簿数据的几种方法 在Excel的使用过程中,经常需要引用其他工作簿的数据,而用户往往希望能在不打开工作簿或看似不打开工作簿的情况下取得其他工作簿中的数据,有以下几种方法可以实现。 1 数据不多时使用公式 如果需要引用的数据不是太多,可以使用公式取得引用工作簿中的工作表数据,如下面的代码所示。 Sub CopyData_1() Dim Temp...
通过遍历当前应用程序所有已打开工作簿文件(Workbooks 集合),判断指定名称的工作簿是否打开。 Sub test() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "1.xlsx" Then MsgBox "1文件已经打开" Sub OpenWorkbook() Dim msgBoxResult As Integer msgBoxResult = MsgBox("你想要打开工作簿吗?", vbYesNo, "打开工作簿") If msgBoxResult = vbYes Then Workbooks.Open Filename:="C:\Users\YourUsername\Documents\ExampleWorkbook.xlsx" End If End Sub 请注意,您需要将“YourUsername”替换为您的计算机用户名,并将“ExampleWorkbook.xlsx”替换为要打开工作簿的文件名和路径。