如何使用特定的单词复制Excel中的一行并粘贴到另一个Excel工作表上?我检查了一堆不同的帖子,似乎找不到我要找的确切代码。而且我从来没有用过VBA在此之前,我试图从其他帖子中获取代码,并输入我的信息以使其发挥作用。还没有运气。在工作中,我们有一个工资系统EXCEL..我在寻找我的名字"Clarke, Matthew"然后复制该行并将其粘贴到我在桌面上保存的工作簿上。"Total hours".
3 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
试测试
Sub Sample() Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim copyFrom As Range Dim lRow As Long '<~~ Not Integer. Might give you error in higher versions of excel Dim strSearch As String Set wb1 = ThisWorkbook Set ws1 = wb1.Worksheets("yourSheetName") strSearch = "Clarke, Matthew" With ws1 '~~> Remove any filters .AutoFilterMode = False '~~> I am assuming that the names are in Col A '~~> if not then change A below to whatever column letter lRow = .Range("A" & .Rows.Count).End(xlUp).Row With .Range("A1:A" & lRow) .AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*" Set copyFrom = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow End With '~~> Remove any filters .AutoFilterMode = False End With '~~> Destination File Set wb2 = Application.Workbooks.Open("C:\Sample.xlsx") Set ws2 = wb2.Worksheets("Sheet1") With ws2 If Application.WorksheetFunction.CountA(.Cells) <> 0 Then lRow = .Cells.Find(What:="*", _ After:=.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row Else lRow = 1 End If copyFrom.Copy .Rows(lRow) End With wb2.Save wb2.CloseEnd Sub
临摹微笑
TA贡献1982条经验 获得超2个赞
Dim curBook As WorkbookDim targetBook As WorkbookDim curSheet As WorksheetDim targetSheet As WorksheetDim lastRow As IntegerSet curBook = ActiveWorkbookSet curSheet = curBook.Worksheets("yourSheetName")'change the Field number to the correct columncurSheet. Cells.AutoFilter Field:=1, Criteria1:="Clarke, Matthew" 'The Offset is to remove the header row from the copycurSheet.AutoFilter. Range.Offset(1).Copy curSheet.ShowAllData Set targetBook = Application.Workbooks.Open "PathTo Total Hours"Set targetSheet = targetBook.WorkSheet("DestinationSheet")lastRow = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row targetSheet.Cells(lastRow + 1, 1).PasteSpecial targetBook.Save targetBook.Close
米脂
TA贡献1836条经验 获得超3个赞
Public Sub ExportRow() Dim v Const KEY = "Clarke, Matthew" Const WS = "Sheet1" Const OUTPUT = "c:\totalhours.xlsx" Const OUTPUT_WS = "Sheet1" v = ThisWorkbook.Sheets(WS).Evaluate("index(a:xfd,match(""" & KEY & """,a:a,),)") With Workbooks.Open(OUTPUT).Sheets(OUTPUT_WS) .[1:1].Offset(.[counta(a:a)]) = v .Parent.Save: .Parent.Close End WithEnd Sub
- 3 回答
- 0 关注
- 723 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消