半个农民 2022-04-02 20:01 采纳率: 0%
浏览 14

用VBA导入多个Excel表到一个表中,在2019中突然不行了。

我需要根据数据的月份,分类汇总很多表到分月的表中,原来能用,有一天突然不能用了(Excel2019),但是在另一台EXCEL2007的电脑还能用。

Sub FenYueDaoRu() '导入合约所有12个月工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G, cc As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
' MyPath = ActiveWorkbook.Path

For i = 12 To 11 Step -1
'创建12个月的Sheet

' ThisWorkbook.Worksheets.Add Count:=1, before:=Sheets(1)
' ThisWorkbook.Worksheets(1).Name = i
' Filename = "D:\OneDrive\futures\SC" & i & ".xls"

Sheets(CStr(i)).Activate
'清空目标区域
Range("A1:l50000") = ""

MyPath = "D:\OneDrive\futures\DC"

If i < 10 Then
MyName = Dir(MyPath & "" & "jm??0" & CStr(i) & ".csv")
Else
MyName = Dir(MyPath & "" & "jm??" & CStr(i) & ".csv")
End If
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
'.Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
Next

WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("A1").Select
'Application.ScreenUpdating = True
'MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

Next i

End Sub

我猜想可能是我电脑的问题,或者是某个插件坏掉了。

怎么能让我的电脑能继续用呢?

  • 写回答

1条回答 默认 最新

  • Goblin_M 2022-04-03 14:12
    关注

    你的2019是不是新装的?你的电脑有没有重装系统?
    估计你的电脑没装VBA插件。去网上下个vba插件,装上在运行你的vba就好了。记得要打开vba运行的权限

    评论

报告相同问题?

问题事件

  • 创建了问题 4月2日

悬赏问题

  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?