[英]Filter, Copy and Paste into New WB - Select Method of Worksheet Class Failed
[英]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.