根据另一张纸中的列填写列

时间:2014-05-23 19:28:29

标签: excel vba excel-vba

我一直是这个地方的长期观众,我喜欢它!我从来不需要发帖,因为我已经找到了一切。但是,今天我很难过,我在这里找不到答案,所以请原谅我,如果这个问题得到解决的话。

问题是:

我想将ColumnA(从A2开始)从SHEET1复制到SHEET2的ColumnB(从B8开始)。

我的问题是源列(SHEET1:ColumnA)在每个使用工作簿的实例中都有动态行数。我也不想填写表格的末尾或显示零等。

我认为这是一个填充问题,但是从另一张纸上采购。虽然我可能错了,但不能自己动手。

非常感谢。

3 个答案:

答案 0 :(得分:0)

试试这个:

sub copyToOtherSheet()
     dim startRowASht1 as int
     dim startRowSht2 as int
     dim loopr as Boolean
     dim counter as long
     loopr = True
     counter = 0
     startRowSht1 = 2
     startRowSht2 = 8

     Do While loopr = True
          Worksheets("Sheet2").Range("B" & Cstr(startRowSht2 + counter)).value = Worksheets("Sheet1").Range("A" & Cstr(startRowSht2+counter)).value
          if Cstr(worksheets("Sheet1").Range("A" & Cstr(startrowsht2 + counter)).value) = "" then
               loopr = False 'you reached an empty cell and it stops copying 
          else
               counter = counter + 1
          end if
End Sub

答案 1 :(得分:-1)

Public Sub a()

    With Sheets("Sheet2")
        .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Copy Destination:=Sheets("Sheet1").Cells(8, 2)
    End With

End Sub

答案 2 :(得分:-1)

如果您愿意使用宏:

Sub copyRange()
  Dim rSource As Range

  Set rSource = Range(Sheet1.Cells(2, 1), Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp))
  Range(Sheet2.Cells(8, 2), Sheet2.Cells(Sheet2.Rows.count,2)).Clear
  Range(Sheet2.Cells(8, 2), Sheet2.Cells(7 + rSource.Rows.Count, 2)).Value = rSource.Value
End Sub

这假设Sheet1上的A列中的连续值范围之下没有任何值,而Sheet2中的任何值都要完全清除B列中从第8行到底部的任何内容。 (如果Sheet1的A列中的范围从一次调用到下一次调用变小,则不希望在Sheet2中留下任何残余)