Excel VBA向下复制单元格列表,迭代删除第一个元素并重复最后一个元素

Excel VBA向下复制单元格列表,迭代删除第一个元素并重复最后一个元素,vba,excel,Vba,Excel,我的电子表格中有一个变量列表,这些变量属于不同点数的“a、b、c、d…”点。该列表之后是一个类似的变量列表(1,2,3,4…(等),其长度也各不相同 对于一个专栏,我想做的是: 对于初始数据集,例如,对于行“a”、“b”、“c”、“d”中的4个起始点,前5个单元格的数据将从行“a”、“b”、“c”、“d”、“d”复制;下4个单元格的数据将从行“b”、“c”、“d”、“d”复制,下3个单元格的数据将从行“c”、“d”、“d”复制。 请参阅链接(格式不是必需的,我只是将其放在文本文件中,以便更容易发

我的电子表格中有一个变量列表,这些变量属于不同点数的“a、b、c、d…”点。该列表之后是一个类似的变量列表(1,2,3,4…(等),其长度也各不相同

对于一个专栏,我想做的是:

对于初始数据集,例如,对于行“a”、“b”、“c”、“d”中的4个起始点,前5个单元格的数据将从行“a”、“b”、“c”、“d”、“d”复制;下4个单元格的数据将从行“b”、“c”、“d”、“d”复制,下3个单元格的数据将从行“c”、“d”、“d”复制。 请参阅链接(格式不是必需的,我只是将其放在文本文件中,以便更容易发现重复)。我要复制的数据是标记为“K-”的列

我相信有一种方法可以做到这一点,我只是不能让我的头围绕它

Dim str As String
str = "abcd"

str = str & Right(str, 1)
Debug.Print str

Do While Len(str) > 2
    str = Right(str, Len(str) - 1)
    Debug.Print str
Loop
产出:

abcdd bcdd cdd dd

对于在单元格上执行的相同操作:

lRow = Cells(1, 2).End(xlDown).Row

Range(Cells(lRow + 1, 2), Cells(lRow * 2 - 1, 2)).Value = Range(Cells(2, 2), Cells(lRow, 2)).Value
Cells(lRow * 2, 2).Value = Cells(lRow * 2 - 1, 2).Value

i = lRow - 1
lRow = lRow * 2
Do While i >= 2
    Range(Cells(lRow + 1, 2), Cells(lRow + i, 2)).Value = Range(Cells(lRow - i + 1, 2), Cells(lRow, 2)).Value
    lRow = lRow + i
    i = i - 1
Loop

我应该更清楚一些;在我链接的屏幕截图中,“K”的值-"单元格是我想要复制下来的,而不是字符串中的字母。我只是给出了点名称而不是值,这样我可以更清楚地显示顺序。对于特定范围的单元格,我可以做类似的事情吗?编辑:事实上我可以看到,我根本没有提到这一点。对不起,没有单簧管我现在修正了问题。