循环遍历i = 1到n行,查找每行中最后使用的列并将其数据复制到同一行VBA的AA1列?

时间:2016-05-18 19:57:01

标签: excel vba excel-vba

我遇到了一个我希望宏循环遍历可变行数的部分。我需要在每一行中找到最后使用的列,并将其内容复制到AA1列的同一行。每行中的列数也是可变的,并且将随着要复制操作的文本的结果而变化。我永远不会知道我会有多少行和列。

这样做的原因是最后使用的列将具有一个密钥,我将在稍后使用该密钥来查看另一个工作表中的数据。 请帮助。我试图通过首先选择colum AA1然后向左移动ctrl + shiftlike来记录这个,然后将其粘贴到列'AB1',这样我就可以将所有代码放在一列中。但是当我尝试循环时它不起作用。

Range("AA1").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Range("AB1").Select
ActiveSheet.Paste

example picture

这是我到目前为止为这个循环汇总的内容:

Sub newmak()

Dim i
Dim n
n = Range("A" & Range("A:A").Rows.Count).End(xlUp).Row

For i = 1 To n

'==================================that part is not working

                        Cells(i, Columns.Count).Select
                        Selection.Copy
                        Range("a" & i, 27).Select '<--??
                        Selection.PasteSpecial

'==================================

Next i

End Sub

2 个答案:

答案 0 :(得分:0)

查找此行的最后一列LETTER

li:not(:first-of-type)::before, li:not(:first-of-type)::after{
  content:'';
  display: block;
  position: absolute;
  top: 0;
  left: -10px;
  width:0;
  height:0;
  border-style: solid;
  border-width: 15px 0 15px 10px;
  border-color: blue transparent;
  box-shadow: 1px 0 0 blue;
}
li:not(:first-of-type)::after{
  left: -9px;
  border-color: lightblue transparent;
  box-shadow: 1px 0 0 lightblue;
}

查找此行的最后一列NUMBER

LastColLtr = Split(Cells(1, Range("ZZ" & RN1).End(xlToLeft).Column).Address, "$")(1)

答案 1 :(得分:0)

dim i as long
i = 1

do until isempty(activesheet.cells(i, 1).value)
  dim v as variant

  if isempty(activesheet.cells(i, 2).value) then
    v = activesheet.cells(i, 1).value
  else
    v = activesheet.cells(i, 1).end(xltoright).value
  end if

  activesheet.cells(i, "AB").value = v
  i = i + 1
loop