我只是试图帮助加快成本比较,除了我的编程技巧在这一点上是可笑的。这就是我到目前为止......
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的图片,只是减去手动输入像穴居人一样的所有数字;)
答案 0 :(得分:0)
删除所说的部分,包括引号“Excel-files,*。xlsx”,以允许它打开所有文件类型。代码应该是
vFile = Application.GetOpenFilename(,_ 1,“选择一个文件打开”,“假”
对于可能由于各种原因而超出范围的下标...因此您需要进一步扩展代码的哪一部分得到下标错误。
希望这有帮助
ħ