简体   繁体   中英

Excel VBA copy filtered CurrentRegion visible cells but exclude last 3 columns

Having a small issue. I have a large piece of code that takes a reference number selected by the user and locates corresponding rows (there can be multiple rows or none to locate) on multiple other sheets by filtering and then copying the data.

This works well except it copies all visible data (columns AN) when I really want it to copy columns A to K (as L to N on the paste sheet is where I have formulas that set reference numbers and therefore can't be pasted over).

I have tried a couple of changes to the below section of code including offset however it either ignores the offset (probably because I'm using xlCellTypeVisible which I had to do as the data that needs to be copied can be across multiple non sequential rows) or I get an error about selection method not supported.

Any thoughts?

sheet that is being copied - DbExtract 正在复制的工作表 - DbExtract Sheet that data is pasted to - DuplicateRecords 在此处输入图像描述 Thanks.

Sub UpdateInputWithExisting()

' Other code that works using set with values and active cell offset with values for other sheets

Sheets("TK_Register").Range("A1").CurrentRegion.AutoFilter field:=12, Criteria1:=RefID

Dim DbExtract, DuplicateRecords As Worksheet
Set DbExtract = ThisWorkbook.Sheets("TK_Register")
Set DuplicateRecords = ThisWorkbook.Sheets("EditEx")

DbExtract.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).copy
DuplicateRecords.Cells(31, 3).PasteSpecial xlPasteValues
On Error Resume Next
Sheets("TK_Register").ShowAllData
On Error GoTo 0

ActiveWorkbook.RefreshAll
Sheets("EditEx").Select
ActiveWindow.SmallScroll Down:=-120
Range("B14:M14").Select

MsgBox ("Record Retrieved. Make your changes and ensure you click 'Save Changes' to update the Master Registers")

End Sub

Need to use .Resize method. Replace this line:

DbExtract.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).copy

With this:

With DbExtract.Range("A1").CurrentRegion
    .Resize(, .Columns.Count - 3).SpecialCells(xlCellTypeVisible).Copy
End With

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM