首页 文章

Excel VBA - 使用变量粘贴代码后取消选择范围

提问于
浏览
1

我编写了一个宏来过滤,复制并将过滤后的标准粘贴到不同的工作簿中 . 我无法弄清楚如何取消选择工作簿中粘贴的范围 . 我试过“.range(”A1“) . 选择”,“application.cutcopymode = false” . 我不知道还有什么可以尝试......我的代码也是如此 - 任何见解都会有所帮助

Dim i As Long
Dim market As Variant, arrbooks() As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheet1.AutoFilterMode = False
market = Array(...
 ReDim arrbooks(0 To UBound(market))

'create workbooks
For i = 0 To UBound(market)
    Set arrbooks(i) = Workbooks.Add
Next

'retrieve data by autofilter

With Sheet4

    For i = 0 To UBound(market)

        .Range("H:H").AutoFilter field:=1, Criteria1:=market(i)

        .Range("H1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy

       Workbooks(arrbooks(i).Name).Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteAll


**workbooks(arrbooks(i).name).sheets(1).application.cutcopymode = false**

        Next
End With

'save workbooks  

For i = 0 To UBound(market)

**workbooks(arrbooks(i).name).sheets(1).application.cutcopymode = false**

Workbooks(arrbooks(i).Name).SaveAs "insert save path"
Workbooks(arrbooks(i).Name).Close
Next

'clean up
Application.ScreenUpdating = False
Sheet4.ShowAllData
Sheet4.AutoFilterMode = False
Application.DisplayAlerts = True

Sheet4.Activate
Sheet4.Range("A1").Select

由于合规性问题,我无法透露我过滤的名称

谢谢!

编辑:**表示我尝试插入的地方.application.cutcopymode = false

2 回答

  • 0

    好的,我现在看到你想要做什么 . 它与目的地中的选择有关,而与 CutCopyMode 无关 . 尝试

    Application.Goto workbooks(arrbooks(i).name).sheets(1).Range("A1")
    

    OTOH, CutCopyMode 删除了源的"dotted"选择,因此您无法再次手动粘贴它 .

  • 0

    看到这个,Unselect column after pasting data我最终选择"A1"以便从选择区域中删除merquri

相关问题