Excel“不可读内容”恢复/修复问题

时间:2018-03-13 11:24:20

标签: excel excel-vba excel-formula recovery vba

我创建了一个 Import 按钮,它应该从另一个打开的Excel文件中导入数据,但我遇到了以下问题。 它是2013年的办公室版本。

我不知道它有什么问题,并希望得到一些建议。

截图:

(点击放大图片。) ss1

ss2

ss3

负责导入数据的函数代码,它应该从打开的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

2 个答案:

答案 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

更多信息:

其他问题,如果没有解决:

  • 每次打开文件时都会反复发生这种情况吗?

  • 你有备份吗?