![](/img/trans.png)
[英]Inserting formula into last row and autofilling until the last column Excel VBA
[英]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.