需要VBA的帮助

时间:2017-03-28 20:23:05

标签: vba excel-vba excel-2010 excel-2013 excel

我的导入代码完全适用于我的2013 64bit excel;但是,我有用户使用32位的2010 Excel,但代码不起作用。如果有人会查看以下代码并告诉我需要更改的内容以便我的2010 32位用户能够使用它,我将非常感激:

Sub TransferData()
''<<<<unprotect code
Dim i As Integer
For i = 1 To Sheets.Count
Sheets(i).Unprotect password:="ADMIN"
Next i
'
''<<<<<main code
'
Application.ScreenUpdating = False
Sheets("Dashboard").Activate
Sheets("DASF Data").Range("DASF_Range").ClearContents
'
Dim wb1 As Workbook
Dim wb2 As Workbook

Set wb1 = ActiveWorkbook

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.xls (*.xls),")

If FileToOpen = False Then
MsgBox "No File Specified.", vbExclamation, "ERROR"
Exit Sub
Else
Set wb2 = Workbooks.Open(Filename:=FileToOpen)

For Each Sheet In wb2.Sheets
    If Sheet.Visible = True Then
      Range("A2:Y10000").Select
Selection.Copy
Windows("DASF MANAGEMENT TOOL (CONUS Ver 1.0).XLSB").Activate
Sheets("DASF Data").Select
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Sheets("Dashboard").Activate

End If
Next Sheet
End If
Workbooks("DASF.XLS").Close SaveChanges:=False

End Sub

1 个答案:

答案 0 :(得分:1)

该错误编号不一定与您列出的代码有任何关系。它可能是模块中任何地方的错误:或者它可能是您的某个模块的编译版本中的损坏代码。它甚至可能是一个破坏的库参考。

要排除第一种可能性,请手动“编译所有代码”。

要解决第二种可能性,请创建新的电子表格,然后将旧电子表格中的文本复制到新电子表格中的新模块中。或者下载并使用Excel'反编译器'。