簡體   English   中英

將值從選定行復制到另一個工作表中的特定單元格-宏

[英]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

我將模板制作為表格,因為更容易准確地指定放置內容的位置。 隨着將來添加更多數據,它更易於管理。

Sheet1圖片

Sheet2圖片

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM