我创建了一个 Import 按钮,它应该从另一个打开的Excel文件中导入数据,但我遇到了以下问题。 它是2013年的办公室版本。
我不知道它有什么问题,并希望得到一些建议。
截图:
负责导入数据的函数代码,它应该从打开的excel文件中获取数据并将其粘贴到另一个文件中:
Sub ImportORT()
Dim Rng2 As Range
Dim wbk As Workbook
Set wbk = ThisWorkbook
Dim RowCounter As Long
Dim clipboard As MSForms.DataObject
Dim str1 As String
Application.ScreenUpdating = False
Sheets("Data").Select
Sheets("Data").Cells.NumberFormat = "@"
Range("A1").Select
On Error GoTo Nopaste
Windows("mvrt.xlsx").Activate
ActiveSheet.Cells.Select
'Range("A1:U16").Select
Selection.Copy
Windows("Offsite Macro_2016_v20.xlsm").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
Rows("1:1").Delete Shift:=xlUp
'Range("A:A").Delete Shift:=xlLeft <--- kasowanie pierwszej kolumny (ma sens tylko jak wklejamy ze strony)
'changed:
Set Rng2 = Application.Intersect(ActiveSheet.UsedRange, Range("A:U"))
Rng2.SpecialCells(xlCellTypeVisible).Copy
Sheets("MVRT").Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("MVRT").Activate
Range("A:U").Columns.AutoFit
Range("A1:U1").AutoFilter
Application.Goto Reference:=Range("A1"), Scroll:=True
'-------------------------------------------
'NEW:
'change column format
Columns("U:U").Select
Selection.NumberFormat = "General"
'remove identical rows
RowCounter = wbk.Sheets("MVRT").Cells(Rows.Count, 2).End(xlUp).Row
wbk.Sheets("MVRT").Range("$A$1:$m$" & RowCounter).RemoveDuplicates Columns:=Array(2, 3, 9, 10, 11, _
12, 13), Header:=xlYes
'set formula
Range("U2").Select
ActiveCell.FormulaR1C1 = "=IF(COUNTIF(C[-14],RC[-14])>1,1,0)"
Range("U2").Select
If Range("A:A").Rows.End(xlDown).Row > 2 Then
Selection.AutoFill Destination:=Range("U2:U" & Range("A:A").Rows.End(xlDown).Row)
End If
'sort by duplicates
Range("U1").Value = "duplicated"
Columns("A:U").Sort Key1:=Range("U1"), Order1:=xlDescending, key2:=Range("C1"), Order2:=xlAscending, key3:=Range("B1"), Order3:=xlAscending, Header:=xlYes
'-------------------------------------------
Sheets("Data").Cells.Delete
Sheets("Control").Activate
Application.Goto Reference:=Range("A1"), Scroll:=True
Application.ScreenUpdating = True
MsgBox "Codes Imported", vbInformation, "Codes Imported"
Exit Sub
Nopaste:
'------------------------------------
'NEW:
Application.ScreenUpdating = True
'------------------------------------
Sheets("Control").Activate
Application.Goto Reference:=Range("A1"), Scroll:=True
MsgBox "No Data To Paste", vbExclamation, "No Data To Paste"
Exit Sub
End Sub
答案 0 :(得分:1)
原因:遇到此错误消息的最可能原因是整个 Excel 文件损坏或此文件中的一个或多个对象损坏。
好吧,没有人为这个问题发布过一个简单的解决方案:
尝试通过将其设为“只读”来打开“.xlsx”文件。
1.点击“Office按钮”,选择保存新文档或另存为以前保存的文档。
2.现在点击“工具”并选择“常规选项”
3.最后点击‘只读’复选框使文档只读 打开一个新的空白“.xlsx”文件,并将损坏的 Excel 文件中的所有内容复制到这个新文件中。保存此文件并尝试再次打开它。
答案 1 :(得分:0)
“发生了什么以及为什么”的答案可能出现在日志文件列表修复中(如对话框所示)。
点击对话框中的链接或在文本编辑器中打开文件:
android:name="AppActivity"
检查文件以尝试了解问题所在。
如果您仍然无法弄清楚,将c:\users\KKWIET~1\AppData\Local\Temp\error094040_06.xml
文件中的相关文字添加 (带edit)
Office.com:Repair a corrupted workbook
Datanumen:Why Do Excel Files Become Corrupt
其他问题,如果没有解决:
每次打开文件时都会反复发生这种情况吗?
你有备份吗?