我在excel工作表(XYZ)中有一个值向量(C8:AM8)。使用VBA代码,我需要做的是从C11开始复制并粘贴那些单元格,但如果C11有一个值,那么我需要偏移1行并将上述值(C8:AM8)粘贴到C12中,或者如果是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,括号外,引号,引号之外等多种排列,我似乎无法确定它。我认为这个问题非常简单,但我显然缺少一些关键的东西,似乎无法在网上找到我需要的东西。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
以下行会在行C
中的最后一个非空单元格后复制您的范围:
Worksheets("XYZ").Range("C8:AM8").Copy Worksheets("XYZ").Range("C1000000").End(xlUp).Offset(1)
答案 1 :(得分:1)
我会选择:
With Sheets("XYZ")
.Range("C8:AM8").Copy .Range("C" & WorksheetFunction.Max(11, .Cells(.Rows.count, "C").End(xlUp).Offset(1).Row))
End With
答案 2 :(得分:0)
您需要输入以下代码:
Range(CellName).Copy Range("C11" + RowC)
像这样:
Dim my_row as integer
my_row=11
Range(CellName).Copy Range("C" & (my_row + RowC))