簡體   English   中英

需要循環增加直到最后一列的公式

[英]Need to loop a formula increasing until last column

我環顧四周,但找不到完全符合我需要的功能。 我基本上是在做一次替換,但僅在帶有X的單元格上進行替換,並替換為其自身標頭的值

Columns("B:B").Select
Selection.Replace What:="X", Replacement:="=B2", LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Columns("C:C").Select
Selection.Replace What:="X", Replacement:="=C2", LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Columns("D:D").Select
Selection.Replace What:="X", Replacement:="=D2", LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

一直持續到最后一列。 在這種情況下,它是CD。 顯然,這是難以置信的不切實際,並且有一種循環此方法的方法是理想的,在該方法中,Replacement:=“ = B2”的值將在每次通過時僅增加一列值。

這是一個循環,可以根據您的描述為您提供所需的信息:

Sub LoopColumns()

Dim ws1 As Worksheet
Set ws1 = Worksheets("Sheet1") 'chnage as needed

Dim rColumns As Range, rCell As Range
Set rColumns = ws1.Range(ws1.Range("B2"), ws1.Range("B2").End(xlToRight)) ' asssumes contiguous range of headers

For Each rCell In rColumns

    rCell.EntireColumn.Replace What:="X", Replacement:=rCell.Value2, LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Next

End Sub

我認為第2行是您應該基於范圍看的范圍,因為這是Range.Replace方法中傳遞的內容

Sub X_to_HDR()
    Dim c As Long
    With Worksheets("sheet1")
        With .Cells(2, 1).CurrentRegion
            With .Resize(.Rows.Count - 1, .Columns.Count - 1).Offset(1, 1)
                For c = 1 To .Columns.Count
                    With .Columns(c)
                        .Replace What:="X", Replacement:=Chr(61) & .Parent.Cells(2, c + 1).Address(0, 0), _
                                 LookAt:=xlWhole, MatchCase:=False
                    End With
                Next c
            End With
        End With
    End With
End Sub

我已經將您的xlPart更改為xlWhole 如果您覺得原件更合適,請改回原樣。

暫無
暫無

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

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