使用偏移量查找空单元格并粘贴值的范围

我有一个excel工作表(XYZ)中的值的向量(C8:AM8)。 使用VBA代码,我需要做的是复制和粘贴从C11开始的那些单元格,但是如果C11有一个值,那么我需要偏移1行并在C12中粘贴上面的值(C8:AM8),或者如果C12有一个值,那么下一个空行。

基本上,现在,我有这样的东西….

Dim CellName As String Dim CheckCell As Range Dim RowA As Range CellName = "C8:AM8" For Each CheckCell In Sheets("XYZ").Range("C11:C50") If Not IsEmpty(CheckCell.Value) Then Set RowC = CheckCell.Offset(1, 0) Else Range(CellName).Copy Range("C11" + RowC) End If Next CheckCell 

我知道最小的问题在这里:

 Range(CellName).Copy Range("C11" + RowC) 

我是VBA的新手,所以我不确定使用正确的语法。 我已经尝试了括号内的RowC,括号外,引号内,外引号等多个排列组合,我似乎无法指定它。 我认为这个问题很简单,但我显然缺less重要的东西,似乎无法find我需要的在线。

任何帮助将非常感激。

谢谢!

我会去:

 With Sheets("XYZ") .Range("C8:AM8").Copy .Range("C" & WorksheetFunction.Max(11, .Cells(.Rows.count, "C").End(xlUp).Offset(1).Row)) End With 

以下行复制您的范围在行C的最后一个非空单元格之后:

 Worksheets("XYZ").Range("C8:AM8").Copy Worksheets("XYZ").Range("C1000000").End(xlUp).Offset(1) 

你需要把这一行代码:

 Range(CellName).Copy Range("C11" + RowC) 

喜欢这个:

 Dim my_row as integer my_row=11 Range(CellName).Copy Range("C" & (my_row + RowC))