excel - 如何停止重新打开工作簿?
问题描述
我有这个代码。
Sub movedata()
Dim i As Long
Dim LastRow As Long
Dim wb As Workbook
Dim wb2 As Workbook
Dim L1 As Variant, L2 As Variant, L3 As Variant, L4 As Variant,l6 as variant
Variant, L6 As Variant, L7 As Variant, L8 As Variant
Dim sht1 As Worksheet
Set wb = ThisWorkbook
Set sht1 = wb.Sheets("PKG Avail Days")
LastRow = sht1.Range("D:O").Find("*", SearchDirection:=xlPrevious).Row
For i = 5 To LastRow
L1 = sht1.Range("D" & i).Value
L2 = sht1.Range("E" & i).Value
L3 = sht1.Range("F" & i).Value
L4 = sht1.Range("K" & i).Value
L5 = sht1.Range("L" & i).Value
L6 = sht1.Range("M" & i).Value
L7 = sht1.Range("N" & i).Value
L8 = sht1.Range("O" & i).Value
Set wb2 = Workbooks.Open("\\NMFPLPCLB130010\Users\stamarae\loglog.xlsx")
wb2.Sheets(1).Range("D" & Rows.Count).End(xlUp).Offset(1, 0) = L1
wb2.Sheets(1).Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = L2
wb2.Sheets(1).Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = L3
wb2.Sheets(1).Range("G" & Rows.Count).End(xlUp).Offset(1, 0) = L4
wb2.Sheets(1).Range("H" & Rows.Count).End(xlUp).Offset(1, 0) = L5
wb2.Sheets(1).Range("I" & Rows.Count).End(xlUp).Offset(1, 0) = L6
wb2.Sheets(1).Range("J" & Rows.Count).End(xlUp).Offset(1, 0) = L7
wb2.Sheets(1).Range("K" & Rows.Count).End(xlUp).Offset(1, 0) = L8
Next i
End Sub
我明白了
运行时错误“1004”-对象“工作簿”的“打开”方法失败。
和提示信息
“xxxx”已经打开。重新打开将导致您所做的任何更改被丢弃。是否要重新打开“xxx.xlsx”?
解决方案
这就是当你放
Set wb2 = Workbooks.Open("\\NMFPLPCLB130010\Users\stamarae\loglog.xlsx")
For i = 5 To LastRow
循环内。宏尝试为每一行打开相同的文件,而不关闭前一个实例。
推荐阅读
- xslt - XSLT 转换未正确映射
- linux - 使用 vconfig 添加 vlan 时出现“设备或资源繁忙”
- javascript - 在行悬停时显示最后一个表格列
- android - 如何在android相机api上进行图像分析
- android - java.lang.IllegalArgumentException 在 Android 10 设备中找不到卷 external_primary
- javascript - Vue Chart.js - 使极地区域图在悬停时改变颜色
- java - POI读取带有字符串正文的Excel文件
- c - 使用 UART 时的串行端口通信问题
- typescript - Passport Azure AD 此表达式不可调用
- python-3.x - 无法使用带有 python 3.8 的 conda 安装 tensorflow