将数据范围从一个工作表插入到下一个工作表

时间:2015-06-16 22:03:46

标签: excel vba excel-vba

使用Excel 2010

好的,我很容易找到如何将数据从一张纸插入另一张并记录记录

Sheets("tempsheet").Range("A1:F10").Value = Sheets("Master").Range("A1:F10").Value

然后我解决了下一步试图找到下一个可用行并自己解决的问题,而我却无法让它发挥作用。我检查了很多网站,但我尝试的一切都出错了。然后我查看我的代码,看看它是如何找到下一个可用的行并仍然发布到相同的A1:F10。所以现在我正在寻求在线帮助。

我的步骤是:

  1. 检查sheet2是否为空行
  2. 将信息从sheet1复制到sheet2
  3. 统计记录数量。

2 个答案:

答案 0 :(得分:0)

考虑一下这个例子:

Sub Test()
    DataTransfer Sheets("Master").Range("A1:F10"), Sheets("tempsheet")
End Sub

Sub DataTransfer(SrcRange As Range, DstSheet As Worksheet)
    Dim AvailableRow As Long
    With DstSheet
        AvailableRow = .UsedRange.Row + .UsedRange.Rows.Count
        .Range(.Cells(AvailableRow, 1), .Cells(AvailableRow + SrcRange.Rows.Count - 1, SrcRange.Columns.Count)).Value = SrcRange.Value
    End With
End Sub

答案 1 :(得分:0)

我不是Excel专家,所以对于像你这样的问题,我通常采用暴力方法:例如,考虑两个工作表,每个工作表都有一个。

为了将工作簿2中的单元格块复制到工作簿1,我会编写一个VBA函数,如:

Sub CopySheetFromOtherWorkbook()

Dim exWB1 As Excel.Workbook
Dim exWB2 As Excel.Workbook

Dim exWS1 As Excel.Worksheet
Dim exWS2 As Excel.Worksheet

Dim exR1 As Excel.Range
Dim exR2 As Excel.Range

Dim Marker1 As String, Marker2 As String
Dim aRow As Integer, aCol As Integer

Set exWB1 = Excel.Workbooks(1)
Set exWB2 = Excel.Workbooks(2)

Set exWS1 = exWB1.Sheets(1)
Set exWS2 = exWB2.Sheets(1)

Set exR1 = exWS1.Range("A1")
Set exR2 = exWS2.Range("A1")

Marker1 = exR1.Cells(1, 1)
Marker2 = exR2.Cells(1, 1)

MsgBox "Workbook 1 Marker:  " + Marker1
MsgBox "Workbook 2 Marker:  " + Marker2

For aCol = 2 To 11
  For aRow = 1 To 30
    exR1.Cells(aRow, aCol) = exR2.Cells(aRow, aCol)
    Next aRow
  Next aCol

End Sub

要做你想要做的事,你需要做的就是添加代码来测试空单元格以及那些符合你标准的人

要实际执行此操作,您需要按名称和(可能)设置代码引用两个工作簿,以确定实际的行和列限制。