Vba 将值复制到右侧的空单元格

Vba 将值复制到右侧的空单元格,vba,excel,Vba,Excel,我正在寻找类似于从ASAP实用程序将值复制到下面的空单元格,而不是向右复制。所以,当我选择一行时,它会将值从填充的单元格复制到右边的空单元格,直到有一个填充的单元格,然后开始复制该单元格,依此类推 下面是一个代码示例,在我选择整行时除外: Sub CopyToRight() On Error GoTo Err_Handler Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=RC[-1]" E

我正在寻找类似于从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

你试过这样的东西吗?如果没有任何代码示例,很难看到您正在尝试做什么

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

这将满足您的要求:

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

到目前为止,您尝试了什么代码<代码>范围。FillRight将是您的最佳选择。是否需要它来循环所有行?请张贴你的工作表的一个例子。添加代码来说明。我不需要这个循环。只是为了能够选择我感兴趣的任何一行。是否一次只选择一行?你会在某一行上运行这个吗?你想在所有行中循环吗?不是我要找的。我将其粘贴到代码中,因此您可以尝试在一行中选择一些单元格。我希望这可以用于选择整行。谢谢,但它会显示行If单元格(CurRow,CurCol)的类型不匹配错误。Value=”“Then。一定是因为我正在选择文本。我在一个简单的a-blank-blank-blank-B-blank-blank-C-blank-D行上测试了这一点,它复制得很好。请共享您其中一行的一些示例数据,以便我可以测试并尝试复制错误。失败的只是纯文本。但它可以处理数值。请将所有
.Value
更改为
.Text
,然后重试