我正在尝试将一行复制到多个工作表中。
在管理员工工作产品时,我希望员工的姓名(A列)及其信息( B、C、D、E、F和G列)转到每个员工的相应工作表中。
理想情况下,第一个“标签”就是所有的信息。工作表2将是Employee 2,其中的信息行将自动填充,依此类推。
我尝试的代码只做了一行。
发布于 2014-08-08 18:37:31
我不知道你为什么要这么做。拥有多张只包含一行的工作表似乎是一种浪费。
无论如何,这不是自动更新,多次运行它,您将获得每个员工的多个页面。如果你想要更多的功能,你应该提供更多你想要的信息。你提到的你写的代码你应该分享。
Const EMPLOYEE_NAME_COL As String = "A"
Const LAST_COL As String = "G"
Const MY_BOOK_NAME As String = "name your workbook"
Const INFO_SHEET_INDEX As Integer = 1
Function GetNewSheetAtEnd(book As Workbook) As Worksheet
Dim sheets as Collection
Set sheets = book.sheets
Set GetNewSheetAtEnd = sheets.add(after:=sheets(sheets.count))
End Function
' Modify this Sub to copy however you want it to
Sub CopyRangeToSheet(rng As Range, sheet As WorkSheet)
rng.Copy sheet.Range("A1")
End Sub
Sub CopyEmployeesToNewSheets()
Dim info_sheet as Worksheet
Set info_sheet = Workbooks(MY_BOOK_NAME).Sheets(INFO_SHEET_INDEX)
Dim employees_range As Range
' Assumes you have a header. You will probably need to modify this.
Set employees_range = info_sheet.Range("A2:G" & info_sheet.UsedRange.Rows.Count)
Dim employee_row As Range
For Each employee_row In employees_range.Rows
CopyRangeToSheet employee_row, GetNewSheetAtEnd()
Next employee_row
End Sub
https://stackoverflow.com/questions/25207589
复制