Я создаю новую книгу, затем открываю файлы в каталоге и добавляю соответствующие листы и значения в новую книгу. Я прошел через так много форм, показывая «Копировать назначение: =» или только один диапазон, равный другому, но я не могу заставить работать мой скрипт. Все работает (это всего лишь фрагмент, так что поверьте мне, что 98% его работы), за исключением этой ОДНОЙ строки прямо перед «Книгами (FileName). Закройте» в сценарии «Другие». Я обычно нахожу свой ответ и разбираюсь в этом, но я включаю здесь полотенце. Помоги пожалуйста!Каков правильный синтаксис для копирования диапазона ячеек из одной книги в другую?
Dim SiteUsedCheck As Boolean
Dim NewBook As Workbook
Dim NewSheet As Worksheet
Dim SaveAsName As String
Dim WeekRange As Range
Set WeekRange = Range("I5:O17")
SaveAsName = "Invoice" & "_" & Home.Range("C23").Value & ".xlsm"
MsgBox SaveAsName
Set NewBook = Workbooks.Add
With NewBook
Do While FileName <> "" '<---recall FileName variable looks at excele books; it ignores folders
Workbooks.Open (Directory & FileName)
If Workbooks(FileName).Worksheets("TotalHours").Cells(SecretTest, WeekCol) = 0 Then
Workbooks(FileName).Close
Else
Dim TempSheetName As String
Set NewSheet = .Sheets.Add(After:=.Sheets(.Sheets.Count))
TempSheetName = Workbooks(FileName).Worksheets("TotalHours").Range("B2").Value
NewSheet.Name = TempSheetName
NewBook.Sheets(TempSheetName).Range("A1").Value = Workbooks(FileName).Sheets("TotalHours").Range("WeekRange") '<--This is the line that keeps getting an error. But if I put a "1" on the right side of the = it works. So what's wrong with this tiny piece?
Workbooks(FileName).Close
End If
FileName = Dir()
Loop
.SaveAs FileName:= _
InvoiceDirectory & SaveAsName _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Workbooks(SaveAsName).Close
End With
Вы, похоже, не присвоили значение 'SecretTest' или' WeekCol'? – SJR
Я вижу, что искал неправильную линию. 'Range (« WeekRange »)' неверен, потому что это не именованный диапазон, но почему вы пытаетесь установить значение одной ячейки в диапазон? – SJR
О, я думал, что вы можете поместить весь диапазон в одну ячейку, тогда эта ячейка (в данном случае A1) будет левым верхним краем всего, что было скопировано. И в приведенных выше фрагментах WeekRange определяется в зависимости от того, на какой неделе это происходит; Я написал только один пример, чтобы вы, ребята, знали, что я использую для WeekRange –