簡體   English   中英

從工作表中復制具有相同前導單元格文本的行

[英]Copy Rows from Sheet With Same Leading Cell Text

所以我已經為此感到困惑了一段時間。 我有兩張紙,其中第1欄的某些值以粗體顯示。 我希望過濾第二張工作表(“年份設置”)上的值,並使用同一列1粗體文本復制整個數據行。

要從中復制數據的頁面

要將數據復制到的頁面

例如,我想從第一個鏈接獲取“ Backhoes”行,並將其復制到第二個鏈接的“ Backhoes”行。

這里的主要問題是首頁上帶有加粗文本的行是可變的,並且可能始終沒有相同的行號。 添加更多設備后,行號將發生變化。

就像我說的,先謝謝您的幫助,我已經為此工作了幾天。

此外,數據必須從一行轉為一列,但這只是次要的細節。

看這樣的東西。 1.在各行中循環查找粗體單元格。 2.遍歷所有列,然后將數據從源工作表復制到目標工作表。

Dim lRow As Long
Dim lCol As Long
Dim lRowFind As Long
Dim sourceSheet As Excel.Worksheet
Dim targetSheet As Excel.Worksheet

Set sourceSheet = ActiveWorkbook.Sheets("Current Year Budget")
Set targetSheet = ActiveWorkbook.Sheets("Mult. Year Set up")

    lRow = 5
    Do While lRow <= sourceSheet.UsedRange.Rows.count

        'You could do it by name
        'If ws.Range("A" & lRow).Value = "Backhoes" Or ws.Range("A" & lRow).Value = "Graders" Then

        'If we are looking for variable rows by them being bold. We can do this.
        If sourceSheet.Range("A" & lRow).Font.Bold = True Then

            'Find the row on the target sheet where we want to write the data.
            lRowFind = 1
            Do While lRowFind <= targetSheet.UsedRange.Rows.count
                If targetSheet.Range("A" & lRowFind).Value = sourceSheet.Range("A" & lRow).Value Then
                    Exit Do
                End If
            lRowFind = lRowFind + 1
            Loop

            'Now we have a row that we want to copy.
            For iCol = 1 To sourceSheet.UsedRange.Columns.count
                targetSheet.Cells(lRowFind + iCol, 2).Value = sourceSheet.Cells(lRow, iCol).Value
            Next iCol
        End If


        lRow = lRow + 1
        sourceSheet.Range("A" & lRow).Activate
    Loop

暫無
暫無

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

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