我的配方有问题吗?我正在尝试使用一个公式将我带到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
答案 0 :(得分:0)
我可以在你的代码中看到很多错误。
首先要做的事情。您可以避免使用.Activate/.Select
。 INTERESTING 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