動態我需要做的:雙擊自動填充 - 基於相鄰小區
我使用Excel中的正常功能,自動填充(請雙擊單元格的邊點)將內容複製到子細胞中,所以在這種情況下,單擊單元格A1點會做到這一點:
我需要一個腳本,將重複這個過程下來整列,直到沒有更多的值在相鄰細胞。
動態我需要做的:雙擊自動填充 - 基於相鄰小區
我使用Excel中的正常功能,自動填充(請雙擊單元格的邊點)將內容複製到子細胞中,所以在這種情況下,單擊單元格A1點會做到這一點:
我需要一個腳本,將重複這個過程下來整列,直到沒有更多的值在相鄰細胞。
據推測,這是你在找什麼:
Option Explicit
Sub FillInTheBlanks()
Dim StartCell As Range, EndCell As Range
Set StartCell = ActiveCell
Set EndCell = ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)
Dim currentText As String
Dim i As Long
For i = StartCell.Row To EndCell.Row
If Not IsEmpty(ActiveSheet.Cells(i, StartCell.Row)) Then
currentText = ActiveSheet.Cells(i, StartCell.Row).Text
Else
ActiveSheet.Cells(i, StartCell.Row).Value = currentText
End If
Next i
End Sub
該代碼與執行以下操作:
如果你真的想要什麼在你的屏幕截圖,然後你需要這樣做:
Option Explicit
Sub FillInTheBlanks()
Dim StartCell As Range, EndCell As Range, NextCell As Range
Set StartCell = ActiveCell
Set EndCell = Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)
While StartCell.Row < EndCell.Row
Set NextCell = StartCell.Offset(1, 1).End(xlDown).Offset(0, -1)
StartCell.AutoFill Destination:=ActiveSheet.Range(StartCell, NextCell), Type:=xlFillDefault
Set StartCell = NextCell.Offset(1, 0)
Wend
End Sub
哪些做到這一點:
'UsedRange'需要被限定,例如'ActiveSheet.UsedRange'。 –
@DougGlancy'極品'是一個強詞。在這種情況下不是這樣的 - 如果這個動作發生在一個選擇上(即選擇一個單元並激活一個快捷鍵 - 這很明顯是因爲它使用'ActiveCell'而編寫的代碼),那麼隱含數據上下文。 – Alain
爲什麼放棄?你爲什麼說你的代碼很醜? –
等待,你想讓它自動遞增的數字或只是重複'表1'直到它到達'表2'?如果你的屏幕截圖是你想要的行爲,那麼我沒有看到你想要完成的。 – Alain
要添加到@ Alain的問題,單元格A7中的表2下面應該是什麼?表3? –
爲什麼不嘗試一些東西,並回到我們的任何具體問題... –