我的目標是有一個公式,用上一個 Q. 問題填充空單元格,直到最后一個非空單元格(見圖)
范圍是我行的最后一個非空單元格。

現在我的代碼看起來像這樣:
Sub Range_End_Exemple()
Dim cell_target As Range
ActiveCell.FormulaR1C1 = "= IF(ISBLANK(R[-2]C)=TRUE,RC[-1],R[-2]C)"
Set cell_target = Worksheets("dataset Feedback forms").Range(Cells(1, Columns.Count).End(xlToLeft).Select Type:xlFillDefault
End Sub
如果您有任何建議,感謝您的幫助。
uj5u.com熱心網友回復:
下面的子僅基于您附加的圖片。
Sub test()
Dim LastCol As Range
Dim rg As Range
Dim cell As Range
With ActiveSheet
Set LastCol = .Cells(2, Columns.Count).End(xlToLeft).Offset(-1, 0)
Set rg = .Range("D1", LastCol)
For Each cell In rg.SpecialCells(xlCellTypeConstants)
If cell.End(xlToRight).Column = .Columns.Count Then
Range(cell, LastCol).Value = cell.Value
Else
Range(cell, cell.End(xlToRight).Offset(0, -1)).Value = cell.Value
End If
Next
End With
End Sub
該代碼假定“header-2”中沒有任何變化。
“header-1”將從單元格 D1 開始。
有多少“header-1 的型別”是未知的。
“header-2”中使用的最后一列是未知的。
程序:
它獲取“header-2”中使用的最后一列的單元格,然后將該行偏移到-1,然后將其作為 LastCol 變數。LastCol 單元用于標記“header-1”的結束。
然后它將“header-1”的范圍放入 rg 變數中。
然后它回圈具有值的rg的單元格,
將單元格復制到右側的最后一個空單元格(在下一個標題型別“header-1”之前)。
由于“header-1”的最后一個標題型別將沒有邊框,因此它將檢查右側的最后一個空單元格列是否=作業表列計數......然后它使用 LastCol 變數作為邊框。

根據看到您的圖片附件,我無法理解您想要的是:您使用“header-1”的公式?
uj5u.com熱心網友回復:
所以我會想象這樣的事情:
lrow = Cells.Find("*", Cells(1, 1), xlValues, xlPart, xlByColumns, xlPrevious, False).Column ' <-- this gives you the last column blank
nextblank = Cells.Find("", Cells(1, 1), xlFormulas, xlByColumns, xlNext, False).Column ' <-- this gives you the FIRST blank column number
ltr = Split(Cells(1, nextblank - 1).Address, "$")(1) ' <-- this gives you the letter
aux = Range(ltr & "1") ' <-- this is the value you need to copy
在第一個 nextblank 陳述句之后,您需要使用它來迭代
nextblank = Cells.Find("", Cells(1, nextblank), xlFormulas, xlByColumns, xlNext, False).Column
使用這些值 -> lrow 不會改變,它是你的最終目的地
復制后 nextblank、ltr 和 aux 值發生變化
希望能幫助到你!
uj5u.com熱心網友回復:
這將執行您從影像中看起來想要的操作:
Sub Propagate()
Dim lastCol As Integer
With Worksheets("dataset Feedback forms")
lastCol = .Cells(2, .Columns.Count).End(xlToLeft).Column
With .Cells(1, 4).Resize(1, lastCol - (4 - 1)).SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=RC[-1]"
.Value2 = .Value2
End With
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471036.html
上一篇:如果單元格為空,VBA洗掉行
