2012-06-29 37 views
2

動態我需要做的:雙擊自動填充 - 基於相鄰小區

Excel Autofill

我使用Excel中的正常功能,自動填充(請雙擊單元格的邊點)將內容複製到子細胞中,所以在這種情況下,單擊單元格A1點會做到這一點:

enter image description here

我需要一個腳本,將重複這個過程下來整列,直到沒有更多的值在相鄰細胞。

+1

等待,你想讓它自動遞增的數字或只是重複'表1'直到它到達'表2'?如果你的屏幕截圖是你想要的行爲,那麼我沒有看到你想要完成的。 – Alain

+1

要添加到@ Alain的問題,單元格A7中的表2下面應該是什麼?表3? –

+2

爲什麼不嘗試一些東西,並回到我們的任何具體問題... –

回答

2

據推測,這是你在找什麼:

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 

該代碼與執行以下操作:

enter image description here


如果你真的想要什麼在你的屏幕截圖,然後你需要這樣做:

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 

哪些做到這一點:

enter image description here

+0

'UsedRange'需要被限定,例如'ActiveSheet.UsedRange'。 –

+0

@DougGlancy'極品'是一個強詞。在這種情況下不是這樣的 - 如果這個動作發生在一個選擇上(即選擇一個單元並激活一個快捷鍵 - 這很明顯是因爲它使用'ActiveCell'而編寫的代碼),那麼隱含數據上下文。 – Alain

+0

爲什麼放棄?你爲什麼說你的代碼很醜? –

6

您可以從鍵盤做到這一點...

  • 選擇列A
  • 選擇首頁|查找&選擇|轉到特殊...空白OK
  • 按[=] [向上箭頭] [Ctrl + Enter]

要刪除的公式,選擇列A,複製和粘貼,特殊值。

enter image description here

+0

這很漂亮!如果我們試圖簡化這種使用鍵盤,在Excel 2003中,您可以通過快捷鍵第二步用' + '。 – Gaffi

+0

哦哇!這真的很棒,顯示了Excel的強大功能(讓人們知道這些高級功能)......感謝! – Hightower

+0

我已經記不清有多少次我建議這種做法給他人。 +1,對不起,我以前沒有意識到這個答案。 – pnuts