![](/img/trans.png)
[英]Excel Macro: Copying row values from one worksheet to a specific place in another worksheet, based on criteria
[英]Copying values from selected row to a specific cells in another worksheet - macro
我有一個項目列表和一個新的工作表按鈕,如下所示:
對於每個項目,您必須能夠在單擊該按鈕時創建新的工作表。 它從模板復制一個工作表,一個工作表用於一行。 現在,我希望能夠在單擊按鈕時將我選擇的行中的某些信息復制到該新工作表單元格,並可能將工作表重命名為其中一個單元格(ID)中的值。 我需要的值是ID和名稱,也許還有更多。
Sub AddNameNewSheet2()
Dim CurrentSheetName As String
CurrentSheetName = ActiveSheet.Name
'Add New Sheet
Dim i As Byte, sh As Worksheet
For i = 1 To 1
Sheets("Predlozak").Copy After:=Sheets("Predlozak")
Set sh = ActiveSheet
Next i
On Error Resume Next
'Get the new name
ActiveSheet.Name = InputBox("Name for new worksheet?")
'Keep asking for name if name is invalid - Here i want to change worksheet name to a specific cell value from selected row.
Do Until Err.Number = 0
Err.Clear
ActiveSheet.Name = InputBox("Try Again!" _
& vbCrLf & "Invalid Name or Name Already Exists" _
& vbCrLf & "Please name the New Sheet")
Loop
On Error GoTo 0
End Sub
任何人都知道我該如何進行這項工作?
這是我想出的,我還認為復選框是選擇該行的好方法,這很簡單:
Sub AddNameNewSheet2()
Dim x As Long
Dim wks As Worksheet
Dim IdCell As Range, NamCell As Range, FormCell As Range
Set wks = ActiveSheet
Set IdCell = wks.Range("A:A").Find("TRUE").Offset(0, 1)
Set FormCell = IdCell.End(xlToRight)
Set NamCell = IdCell.Offset(0, 1)
Sheets.Add After:=Sheets(1), Type:= _
"C:\Users\*yournamehere*\AppData\Roaming\Microsoft\Templates\*yourtemplatehere*.xltm"
ActiveSheet.Name = NamCell
Dim wks2T As ListObject
Set wks2T = ActiveSheet.ListObjects(1)
With wks2T
.ListColumns(1).Range(2) = IdCell.Value
.ListColumns(2).Range(2).Value = NamCell.Value
.ListColumns(3).Range(2).Value = FormCell.Value
End With
End Sub
我將模板制作為表格,因為更容易准確地指定放置內容的位置。 隨着將來添加更多數據,它更易於管理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.