2014-12-03 45 views
0

我正在尋找類似於將值從ASAP實用程序複製到空單元格的東西,但是向右複製。所以,當我選擇一行時,它會將填充單元格中的值複製到右側的空單元格中,直到存在填充的單元格,然後它將開始複製該單元格,依此類推。將值複製到右側的空單元格

這裏除了當我選擇一整行的作品的代碼示例:

Sub CopyToRight() 

On Error GoTo Err_Handler 

Selection.SpecialCells(xlCellTypeBlanks).Select 
Selection.FormulaR1C1 = "=RC[-1]" 

Exit_This_Sub: 
Exit Sub 
Err_Handler: 
Resume Exit_This_Sub 

End Sub 

Example file

+0

你試過到目前爲止什麼碼? – Chrismas007 2014-12-03 17:06:16

+0

http://msdn.microsoft.com/en-us/library/office/aa195728%28v=office.11​​%29.aspx'Range.FillRight'將是你最好的選擇。 – Chrismas007 2014-12-03 17:07:37

+0

你是否需要循環遍歷所有行?請張貼您的工作表的一個例子。 – Chrismas007 2014-12-03 17:09:42

回答

-1

您是否嘗試過這樣的事情?沒有任何代碼示例,很難看到你想要做什麼。

Sub CopyRow() 
    Rows("32:32").Select 
    Selection.Copy 
    Rows("33:33").Select 
    Selection.Insert Shift:=xlDown 
End Sub 
+0

這絕不能解決O.P.的問題。 – Chrismas007 2014-12-03 17:08:57

+0

不是我在找什麼。我粘貼了代碼,所以你可以嘗試選擇連續的一些單元格。我希望這個工作選擇整個行。 – Mikelowski 2014-12-03 17:09:31

0

這會做你想要什麼:

Sub CopyToRight() 

Dim CurCol As Long, CurRow As Long, LastCol As Long 
Dim CopyRng As Range 

CurRow = ActiveCell.Row 

LastCol = Cells(CurRow, Columns.Count).End(xlToLeft).Column 

For CurCol = 1 To LastCol 
    If Not Cells(CurRow, CurCol).Value = "" Then 
     Set CopyRng = Cells(CurRow, CurCol) 
    ElseIf CopyRng is Nothing Then 
     MsgBox "Error First Cell is Blank" 
    Else 
     Cells(CurRow, CurCol).Text = CopyRng.Text 
    End If 
Next CurCol 

End Sub 
+0

謝謝,但它顯示行如果單元格(CurRow,CurCol).Value =「」然後的類型不匹配錯誤。一定是因爲我在選擇文字。 – Mikelowski 2014-12-03 17:28:23

+0

我測試了這個工作在一個簡單的A-blank-blank-blank-B-blank-blank-C-blank-D行上,它複製得很好。 – Chrismas007 2014-12-03 17:34:12

+0

請分享您的某個行的一些示例數據,以便我可以測試並嘗試複製該錯誤。 – Chrismas007 2014-12-03 17:35:40

相關問題