如何使用特定的单词复制Excel中的一行并粘贴到另一个Excel工作表上?

如何使用特定的单词复制Excel中的一行并粘贴到另一个Excel工作表上?我检查了一堆不同的帖子,似乎找不到我要找的确切代码。而且我从来没有用过VBA在此之前,我试图从其他帖子中获取代码,并输入我的信息以使其发挥作用。还没有运气。在工作中,我们有一个工资系统EXCEL..我在寻找我的名字"Clarke, Matthew"然后复制该行并将其粘贴到我在桌面上保存的工作簿上。"Total hours".

ibeautiful
浏览 725回答 3
3回答

拉丁的传说

试测试Sub&nbsp;Sample() &nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;wb1&nbsp;As&nbsp;Workbook,&nbsp;wb2&nbsp;As&nbsp;Workbook&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;ws1&nbsp;As&nbsp;Worksheet,&nbsp;ws2&nbsp;As&nbsp;Worksheet&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;copyFrom&nbsp;As&nbsp;Range&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;lRow&nbsp;As&nbsp;Long&nbsp;'<~~&nbsp;Not&nbsp;Integer.&nbsp;Might&nbsp;give&nbsp;you&nbsp;error&nbsp;in&nbsp;higher&nbsp;versions&nbsp;of&nbsp;excel &nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;strSearch&nbsp;As&nbsp;String &nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;wb1&nbsp;=&nbsp;ThisWorkbook&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;ws1&nbsp;=&nbsp;wb1.Worksheets("yourSheetName") &nbsp;&nbsp;&nbsp;&nbsp;strSearch&nbsp;=&nbsp;"Clarke,&nbsp;Matthew" &nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;ws1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'~~>&nbsp;Remove&nbsp;any&nbsp;filters &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AutoFilterMode&nbsp;=&nbsp;False &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'~~>&nbsp;I&nbsp;am&nbsp;assuming&nbsp;that&nbsp;the&nbsp;names&nbsp;are&nbsp;in&nbsp;Col&nbsp;A &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'~~>&nbsp;if&nbsp;not&nbsp;then&nbsp;change&nbsp;A&nbsp;below&nbsp;to&nbsp;whatever&nbsp;column&nbsp;letter &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lRow&nbsp;=&nbsp;.Range("A"&nbsp;&&nbsp;.Rows.Count).End(xlUp).Row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;.Range("A1:A"&nbsp;&&nbsp;lRow) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AutoFilter&nbsp;Field:=1,&nbsp;Criteria1:="=*"&nbsp;&&nbsp;strSearch&nbsp;&&nbsp;"*" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;copyFrom&nbsp;=&nbsp;.Offset(1,&nbsp;0).SpecialCells(xlCellTypeVisible).EntireRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;With &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'~~>&nbsp;Remove&nbsp;any&nbsp;filters &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AutoFilterMode&nbsp;=&nbsp;False &nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;With &nbsp;&nbsp;&nbsp;&nbsp;'~~>&nbsp;Destination&nbsp;File &nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;wb2&nbsp;=&nbsp;Application.Workbooks.Open("C:\Sample.xlsx") &nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;ws2&nbsp;=&nbsp;wb2.Worksheets("Sheet1") &nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;ws2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Application.WorksheetFunction.CountA(.Cells)&nbsp;<>&nbsp;0&nbsp;Then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lRow&nbsp;=&nbsp;.Cells.Find(What:="*",&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After:=.Range("A1"),&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lookat:=xlPart,&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookIn:=xlFormulas,&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchOrder:=xlByRows,&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchDirection:=xlPrevious,&nbsp;_ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MatchCase:=False).Row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lRow&nbsp;=&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copyFrom.Copy&nbsp;.Rows(lRow) &nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;With &nbsp;&nbsp;&nbsp;&nbsp;wb2.Save &nbsp;&nbsp;&nbsp;&nbsp;wb2.CloseEnd&nbsp;Sub

临摹微笑

扩展timrau在他的评论中所说的内容,您可以使用autofilter函数查找包含您名字的行。(请注意,我假设您打开了源代码工作簿)Dim&nbsp;curBook&nbsp;As&nbsp;WorkbookDim&nbsp;targetBook&nbsp;As&nbsp;WorkbookDim&nbsp;curSheet&nbsp;As&nbsp;WorksheetDim&nbsp;targetSheet&nbsp;As&nbsp;WorksheetDim&nbsp;lastRow&nbsp;As&nbsp;IntegerSet&nbsp; curBook&nbsp;=&nbsp;ActiveWorkbookSet&nbsp;curSheet&nbsp;=&nbsp;curBook.Worksheets("yourSheetName")'change&nbsp;the&nbsp;Field&nbsp;number&nbsp;to&nbsp;the&nbsp;correct&nbsp;columncurSheet. Cells.AutoFilter&nbsp;Field:=1,&nbsp;Criteria1:="Clarke,&nbsp;Matthew"&nbsp;'The&nbsp;Offset&nbsp;is&nbsp;to&nbsp;remove&nbsp;the&nbsp;header&nbsp;row&nbsp;from&nbsp;the&nbsp;copycurSheet.AutoFilter. Range.Offset(1).Copy&nbsp;&nbsp; curSheet.ShowAllData&nbsp; Set&nbsp;targetBook&nbsp;=&nbsp;Application.Workbooks.Open&nbsp;"PathTo&nbsp;Total&nbsp;Hours"Set&nbsp;targetSheet&nbsp;=&nbsp;targetBook.WorkSheet("DestinationSheet")lastRow &nbsp;=&nbsp;Cells.Find(What:="*",&nbsp;After:=Range("A1"),&nbsp;LookIn:=xlValues,&nbsp;LookAt:=xlPart,&nbsp;SearchOrder:=xlByRows,&nbsp;SearchDirection:=xlPrevious).row targetSheet.Cells(lastRow&nbsp;+&nbsp;1,&nbsp;1).PasteSpecial targetBook.Save targetBook.Close如您所见,我将占位符放在工作簿的特定设置中。

米脂

我知道这是老生常谈,但对于其他人来说,寻找如何做到这一点,可以用一种更直接的方式:Public&nbsp;Sub&nbsp;ExportRow() &nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;v&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;KEY&nbsp;=&nbsp;"Clarke,&nbsp;Matthew" &nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;WS&nbsp;=&nbsp;"Sheet1" &nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;OUTPUT&nbsp;=&nbsp;"c:\totalhours.xlsx" &nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;OUTPUT_WS&nbsp;=&nbsp;"Sheet1" &nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;=&nbsp;ThisWorkbook.Sheets(WS).Evaluate("index(a:xfd,match("""&nbsp;&&nbsp;KEY&nbsp;&&nbsp;""",a:a,),)") &nbsp;&nbsp;&nbsp;&nbsp;With&nbsp;Workbooks.Open(OUTPUT).Sheets(OUTPUT_WS) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.[1:1].Offset(.[counta(a:a)])&nbsp;=&nbsp;v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Parent.Save:&nbsp;.Parent.Close&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;WithEnd&nbsp;Sub
打开App,查看更多内容
随时随地看视频慕课网APP