复制并粘贴错误
我的配方有什么问题吗? 我正在尝试使用一个公式来使我能够在继续进行之前或者msgbox提示继续或者找不到工作簿/工作表之前,让我对gotoreference(Ie f5)
单元格进行validation,以确认单元格是否正确。 有时候这个人因为是季度数据而留下空白,我想自动提取最新的数据(最远的)列。
我有两个工作簿:一个是我正在运行macros的当前工作簿(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
我可以在代码中看到很多错误。
首先是事情。 您避免使用.Activate/.Select
。 有趣的阅读
接下来关于Activate.Windows ("wb")
。 "
之间的任何事情将被视为一个string,我想你想尝试
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