Excel将数据复制到另一个工作表

时间:2016-08-21 23:09:02

标签: excel vba excel-vba macros

尝试为Till Check做一个工作表,手动输入所有数据,然后将该数据复制到另一张表以供将来参考,现在我已经完成了这一点(在yonks中以excel编码)然而,一个小问题是它多次复制该数据,因此每行只有1个条目,而是输入数据的5行。

单行应该有5个不同的条目,日期,现金销售,Eftpos销售,总计,检查。

Sub Button2_Click()

  Dim rng As Range
  Dim i As Long
  Dim a As Long
  Dim rng_dest As Range
  Application.ScreenUpdating = False

  i = 1

  Set rng_dest = Sheets("Till Reports").Range("A:D")


  ' Find first empty row in columns D:G on sheet Invoice data

  Do Until WorksheetFunction.CountA(rng_dest.Rows(i)) = 0

    i = i + 1

  Loop


  Set rng = Sheets("Till Checks").Range("E21:F26")


  ' Copy rows containing values to sheet Till Checks


  For a = 1 To rng.Rows.Count


    If WorksheetFunction.CountA(rng.Rows(a)) <> 0 Then


      rng_dest.Rows(i).Value = rng.Rows(a).Value

      Sheets("Till Reports").Range("D" & i).Value = Sheets("Till Checks").Range("F24").Value
      Sheets("Till Reports").Range("A" & i).Value = Sheets("Till Checks").Range("E21").Value
      Sheets("Till Reports").Range("B" & i).Value = Sheets("Till Checks").Range("F22").Value
      Sheets("Till Reports").Range("C" & i).Value = Sheets("Till Checks").Range("F23").Value
      Sheets("Till Reports").Range("E" & i).Value = Sheets("Till Checks").Range("F25").Value

      i = i + 1

    End If

1 个答案:

答案 0 :(得分:0)

这是你的For a = 1 To rng.Rows.Count。删除它,它应该做一次。