将一个工作簿中的多个工作表组合到另一个工作簿上的单个工作表中,而不使用宏

时间:2014-06-24 03:15:27

标签: excel vba excel-vba

我只是试图帮助加快成本比较,除了我的编程技巧在这一点上是可笑的。这就是我到目前为止......

Sub CommandButton1_Click()

'Last cell in column
Dim WS As Worksheet
Dim LastCell As Range
Dim LastCellRowNumber As Long

Set WS = Worksheets("Asphalt")
With WS
    Set LastCell = .Cells(.Rows.Count, "C").End(xlUp)
    LastCellRowNumber = LastCell.Row + 1
End With

Dim wb As Workbook, wb2 As Workbook
Dim vFile As Variant

'Set source workbook
Set wb = ActiveWorkbook

'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", _
    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 selectedworkbook
Set wb2 = ActiveWorkbook

'Select cells to copy
wb2.Worksheets("Asphalt").Range("J3:R3").Copy

'Go back to original workbook you want to paste into
wb.Activate

'Paste starting at the last empty row
wb.Worksheets("Asphalt").Range("C" & LastCellRowNumber).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True

'Close and save the workbook you copied from
wb2.Save
wb2.Close

End Sub

现在首先我无法出于任何原因打开另一个.xls工作簿。其次,我收到一条消息,说我的下标超出了范围。

最终我想要发生的是点击一个按钮,打开我想要的工作簿作为我的初始成本,它不仅会填充定价,还会填充订单项和数量。然后点击另一个按钮打开另一个工作簿并从该工作簿导入成本,但仅限于行项目匹配。

现在我知道这是一个很高的订单,我将继续我的艰苦跋涉,以实现我拥有这个功能强大的电子表格的目标,但我将非常感谢我能得到的任何和所有帮助。

这是一张大致上我希望最终项目看起来像http://imgur.com/3EnYEcP的图片,只是减去手动输入像穴居人一样的所有数字;)

1 个答案:

答案 0 :(得分:0)

删除所说的部分,包括引号“Excel-files,*。xlsx”,以允许它打开所有文件类型。代码应该是

vFile = Application.GetOpenFilename(,_     1,“选择一个文件打开”,“假”

对于可能由于各种原因而超出范围的下标...因此您需要进一步扩展代码的哪一部分得到下标错误。

希望这有帮助

ħ