#excel #vba #copy
Вопрос:
Поэтому я сделал следующий код для копирования и вставки информации из другой книги в текущую, но он не распознает информацию, а только информацию из раскрывающегося списка в файле назначения.
Sub casesopenfile()
Dim filetoopen As String
Dim Casesbook As Workbook
filetoopen = Application.GetOpenFilename(Title:="Choose a file", Filefilter:="Excel Files (*.xls*), *xls*,(.*xlsx*),*xlsx")
If filetoopen = "False" Then
MsgBox "No file selected", vbExclamation, "Sorry"
Exit Sub
Else
Set Casesbook = Application.Workbooks.Open(filetoopen)
Casesbook.Sheets(1).Range("A1:Q300").Copy
ThisWorkbook.Worksheets("Cases 2017-2021").Range("A1121").PasteSpecial xlPasteValues
Casesbook.Close False
End If
End Sub
Комментарии:
1. » не копирует значения должным образом» не является полезным описанием ошибки. Пожалуйста, объясните, чего вы ожидаете и что пошло не так или где вы получаете ошибки. Также скриншоты могут помочь понять вашу проблему. Представьте, что мы понятия не имеем, что должен делать ваш код, если вы не объясните нам это. На самом деле я не вижу в этом коде ничего плохого. Он копирует диапазон
A1:Q300
открытой книги и вставляет вA1121
Cases 2017-2021
нее .2. … кроме возможного … большой объем данных… сообщение (перед закрытием книги), которое можно подавить с
Application.CutCopyMode = False
помощью .3. Может быть проблема со скрытым листом в первой позиции? Убедитесь, что в книге, с которой вы копируете, нет скрытых листов, а если есть, то они не расположены перед листом, с которого вы хотите скопировать.
4. Также убедитесь, что первый лист является рабочим листом, а не другим типом листа (например, лист диаграммы).
Sheets
содержит все типы листов, в то времяWorksheets
как содержит только рабочие листы.5. Большое вам спасибо! Я чувствую себя немного глупо, но там был скрытый лист, и теперь он отлично работает. Я ценю вас всех 🙂