使用Excel 2010
好的,我很容易找到如何将数据从一张纸插入另一张并记录记录
Sheets("tempsheet").Range("A1:F10").Value = Sheets("Master").Range("A1:F10").Value
然后我解决了下一步试图找到下一个可用行并自己解决的问题,而我却无法让它发挥作用。我检查了很多网站,但我尝试的一切都出错了。然后我查看我的代码,看看它是如何找到下一个可用的行并仍然发布到相同的A1:F10。所以现在我正在寻求在线帮助。
我的步骤是:
答案 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
要做你想要做的事,你需要做的就是添加代码来测试空单元格以及那些符合你标准的人
要实际执行此操作,您需要按名称和(可能)设置代码引用两个工作簿,以确定实际的行和列限制。