vba存储一个值从非活动窗口粘贴

我有两个工作簿。 我已经自动化了代码来设置不同的filter,然后在wb2中测量小计,然后把这个值粘贴到wb1的8×11表中,然而这需要年龄,因为我正在使用。

Windows("wb2name").Activate Sheets("sheet2").Select ' do the filtering and copy subtotal value Windows("wb1name").Activate Sheets("sheet1").Range("A1").Paste 

我知道它更好地尝试,而不是使用ActivateSelect所以我认为这将是更快,如果我做了下面的代码会更快。 问题是没有妥善保存x =小计。 我该如何解决?

 Dim wb1 As Workbook Dim wb1sh As Worksheet Set wb1 = ActiveWorkbook Set wk1sh = wb1.Sheets("sheet1") Set wb2 = "data file.xlsx" Set wk2sh = wb1.Sheets("sheet1") 'Then I do the filter selecting wich works fine via: x= wb2sh.Application.WorksheetFunction.Subtotal(3,Range("A1:A100")) wb1sh.Range("A1")=x End Sub 

试试这个,你的语法稍微偏离了,我想你是在引用错误的表单。 你应该打开Option Explicit,这会提醒你错误的variables名称。

 Dim wb1 As Workbook, wb2 as workbook Dim wk1sh As Worksheet, wk2sh as worksheet, x Set wb1 = ActiveWorkbook Set wk1sh = wb1.Sheets("sheet1") Set wb2 = workbooks("data file.xlsx") Set wk2sh = wb2.Sheets("sheet1") 'Then I do the filter selecting wich works fine via: x= Application.WorksheetFunction.Subtotal(3,wk2sh.Range("A1:A100")) wk1sh.Range("A1")=x End Sub