Excel VBA向下复制单元格列表,迭代删除第一个元素并重复最后一个元素
我的电子表格中有一个变量列表,这些变量属于不同点数的“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-”的列 我相信有一种方法可以做到这一点,我只是不能让我的头围绕它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”复制。 请参阅链接(格式不是必需的,我只是将其放在文本文件中,以便更容易发
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”的值-"单元格是我想要复制下来的,而不是字符串中的字母。我只是给出了点名称而不是值,这样我可以更清楚地显示顺序。对于特定范围的单元格,我可以做类似的事情吗?编辑:事实上我可以看到,我根本没有提到这一点。对不起,没有单簧管我现在修正了问题。