复制并粘贴错误

时间:2013-11-29 14:13:33

标签: excel vba excel-2007

我的配方有问题吗?我正在尝试使用一个公式将我带到gotoreference(I.e f5)单元格,以便在继续之前验证单元格确实是正确的,或者msgbox提示继续,或者找不到工作簿/工作表。有时这个人留空,因为它是季度数据,我希望它能自动提取最新数据(最远)列。

我有两个工作簿:一个是我正在运行宏的当前工作簿(Currentworkbook.xlsx)。另一个是'Mysheettab'的Jedata.xlsx以及此处未列出的其他一些工作簿,将把信息提供给'Sheet1'的Currentworkbook.xlsx。

Option explicit

Sub Macro3()
' Macro3 Macro
'
' Keyboard Shortcut: Ctrl+q
'
Dim wb As Workbook
Dim ws As Worksheet

On Error Resume Next

Set wb = ActiveWorkbook("Jedata")
Set ws = ActiveWorkbook.Sheets("Mysheettab")

On Error GoTo 0

If ws Is Nothing Then
MsgBox "Data sheet not found"
Else

Activate.Windows ("wb")
Sheets("ws").Select
Application.Goto Reference:=Range("AG28:AG32").Select
Selection.Copy
Windows("Currentworkbook").Activate
Selection.Copy
Range("H10:H14").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End Sub

1 个答案:

答案 0 :(得分:0)

我可以在你的代码中看到很多错误。

首先要做的事情。您可以避免使用.Activate/.SelectINTERESTING READ

关于Activate.Windows ("wb")的下一步。 "之间的任何内容都将被视为字符串。我想你想尝试

wb.Activate

但正如我所提到的,你应该避免使用.Activate/.Select。您的代码可以写成( UNTESTED

Sub Macro3()
    Dim wb As Workbook, thiswb As Workbook
    Dim ws As Worksheet, thisws As Worksheet

    On Error GoTo Whoa

    Set thiswb = thisowrkbook
    Set thisws = thiswb.ActiveSheet

    Set wb = Workbooks("Jedata")
    Set ws = wb.Sheets("Mysheettab")

    ws.Range("AG28:AG32").Copy thisws.Range("H10")
    Application.CutCopyMode = False

    Exit Sub
Whoa:
    MsgBox Err.Description  
End Sub