#vba #excel
#vba #excel
Вопрос:
Я просто пытаюсь ускорить сравнение затрат, за исключением того, что мои навыки программирования на данный момент смехотворны. Это то, что у меня есть до сих пор…
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" amp; 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.
Dim vFile As Variant
означает, что это не имеет никакого отношения к VB.NET
Ответ №1:
Удалите часть с надписью, включая кавычки «Excel-files,*.xlsx», чтобы разрешить ей открывать все типы файлов. Код должен быть
vFile = Application.GetOpenFileName(, _ 1, «Выберите один файл для открытия», , False)
Что касается нижнего индекса вне диапазона, который может быть для различных reasons…so вам нужно было бы подробнее рассказать о том, какая часть кода выдает ошибку нижнего индекса.
Надеюсь, это поможет
H