簡體   English   中英

Excel VBA如何將WorkSheet名稱與單元格值匹配,然后復制並粘貼一系列單元格

[英]Excel VBA How to match WorkSheet name with Cell value, then Copy and Paste a Range of Cells

當“目標”工作簿的頂部單元格與工作表的名稱匹配時,我只是試圖將值從一個工作簿的值復制並粘貼到另一個工作簿。

但是在大多數情況下,它給我錯誤1004。 有任何想法嗎?

Sub Cycle()

Dim ws As Worksheet
Dim y As Integer

 For Each ws In ThisWorkbook.Sheets
            ActiveSheet.Name = Worksheets("Target").Cells(1, y)
            Worksheets("Target").Range(Cells(2, y), Cells(24, y)).Copy
            Selection.Copy
            ActiveSheet.Range("e3").Paste
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

            y = y + 1


        Next ws

End Sub

我不確定我是否確切了解您想要什么,但是可以嘗試一下:

Sub Cycle()

Dim ws As Worksheet
Dim wsTarg As Worksheet: Set wsTarg = Worksheets("Target")
Dim y As Integer

For Each ws In ThisWorkbook.Sheets
    y = 1
    While (wsTarg.Cells(1, y) <> vbNullString)
        If ws.Name = wsTarg.Cells(1, y) Then
            wsTarg.Range(wsTarg.Cells(3, y), wsTarg.Cells(25, y)).Value = _
                ws.Range(ws.Cells(1, 1), ws.Cells(23, 1)).Value
        End If
        y = y + 1
    Wend
Next ws
End Sub

這不是最好的方法(我們可以優化以避免驗證已復制的列,並且不驗證目標電子表格),但是它將查找您的所有工作表並與Target第一行中的所有單元格進行比較片。 如果工作表的名稱與單元格名稱完全相同,則會將第一列(單元格1至23)復制到目標工作表中的單元格3至25上。

我希望這有幫助!

暫無
暫無

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

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