目前,我正在努力解决以下问题: 我有两个Excel文件。一个文件包含大量数据,另一个文件用于评估它。 现在我需要有效地将数据从源复制到目标工作簿。源datapattern看起来类似于以下内容:
x A B C D E F G H I
1 Oct bla bla bla bla bla bla bla bla
2 75 66
3 Nov bla bla IMT Frm bla bla IMT Frm
其中bla表示不感兴趣的数据,A列表示月份(重要),IMT是重要数据,这是我为什么这样做的原因。此外,Frm表示单元格包含公式,而不是值,必须保留/恢复。 此外,必须保留目标文件的单元格格式(可以使用.PasteSpecial实现)。
目标工作簿看起来完全相同,省略了半个emty行“2”。
每行有大约10个有价值的条目。我如何才能最有效地将数据复制到第二个工作簿中? 如果有更多我可以提供的信息,请告诉我。 谢谢你的时间!
编辑:example screenshot 澄清:屏幕截图显示了源表。重要信息是在ss中选择的信息。这张纸就像这样向右移动(直到BF)。我需要复制每六个条目。目标表看起来完全相同(省略半空中间行),除了在源中是公式但需要是目标值的所需信息。 非常感谢你帮助我!
答案 0 :(得分:1)
这是一个示例代码,可以帮助您朝着正确的方向前进:
Public Sub CopyValues()
Dim wb_src As Workbook, wb_dst As Workbook
Dim ws_src As Worksheet, ws_dst As Worksheet
Set wb_src = Workbooks.Open("....")
Set wb_dst = Workbooks.Add()
Set ws_src = wb_src.Sheets(1)
Set ws_dst = wb_dst.Sheets(1)
Dim data() As Variant
Dim r_src As Range
Dim r_dst As Range
Set r_src = ws_src.Range("B4").Resize(1000, 100)
Set r_dst = ws_dst.Range("B4").Resize(1000, 100)
data = r_src.Value2
r_dst.Value2 = data
End Sub
答案 1 :(得分:0)
试试这个:
Option Explicit
Sub test()
Dim wb As Workbook, wb2 As Workbook
Dim ws As Worksheet
Dim vFile As Variant
'Set source workbook
Set wb = ActiveWorkbook
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xls", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
'Set targetworkbook
Set wb2 = ActiveWorkbook
'Copy data from a range in the first workbook to another range in the other workbook
wb2.Worksheets("Sheet2").Range("C3:D4").Value = wb.Worksheets("Sheet1").Range("A1:B2").Value
End Sub
答案 2 :(得分:-2)
Dim i As Integer
For i = 6 To 55
targetSheetSal.Cells(ActiveCell.Row, i + 1).Value = sourceSheet.Cells(24, i).Value
i = i + 5
Next i
感谢大家的时间,意见和建议!