簡體   English   中英

如何使用VBA選擇一對圖紙並將它們復制到新的wb?

[英]How to VBA to select a pair of sheets and copy them to a new wb?

‘這里是新手,非常感謝您的耐心等待!
我有一個包含多個工作表的工作簿,我需要:

1)選擇工作表對(索引和索引+1)

2)將它們復制到新的工作簿中

3)使用引用的單元格(例如A1)中的任何標簽重命名工作表

4)然后對工作簿中的每對工作表重復(數十對)

由於我是vba的新手(只參加了一堂課),所以我很容易感到困惑。 到目前為止,我僅有的一部分是引用單元格A1將工作表重命名為該單元格中的任何文本字符串。 我無法弄清其余的一切。 我認為這與worksheet.index或worksheets(index)和某種循環有關,其中索引加2並在復制之前激活該工作表和下一個工作:工作表1和2,然后工作表3和4,等等。 。

Private Sub Worksheet_Calculate() 
 Dim s As String 
 s = "sheet 1" 
 If Range("A1").Value <> "" Then 
     s = Range("A1").Value 
 End If 
 ActiveSheet.Name = s 
 End Sub 

以我的理解,必須檢查單元格A1以確保它不為空,因為您不能使用空值命名工作表。 在這一點上,其余部分的用法和語法目前還遠遠超出了我,但是我真的很想學習,並最終成為該社區的貢獻者。 我是剛上班的新人,只能打零工,因此為老板提供解決方案可能意味着我成為永久人。 因此,非常感謝!!!

Option Explicit

Private Sub Worksheet_Calculate()
Dim s As String
Dim ws As Worksheet
Dim wsi As Worksheet

Set wsi = Sheets("Sheet4")' You need to create a name for the sheet to paste into

For Each ws In ActiveWorkbook.Worksheets
If Not IsEmpty(ws.Range("A1")) and ws.name = "INDEXCOPY" Then
     ws.Name = ws.Range("A1").Value
     ws.Range("A1:" & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Address).Copy _
     Destination:=wsi.Range("A1")
End If
Next ws
End Sub

這段代碼可以幫助您入門,但是,您需要一種方法來區分要從中復制的索引表和要復制到的索引表。 您將需要添加其他if語句,請參見上面的注釋。 我會在這里-http: //www.rondebruin.nl/win/s3/win006.htm

暫無
暫無

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

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