andrewkard1980
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Vasyatka91 Попробуйте как то так упростить ваш код, в массиве можно хранить много переменных и место занимают меньше Код: Sub SearchRange() Dim par%, lRw&, lCn& Dim a, b Dim sFileName$ par = UserForm1.TextBox1.Value a = Range(Cells(1, par + 1), Cells(1, par + 5)) With ThisWorkbook.Sheets("Base") lRw = .Cells.SpecialCells(xlLastCell).Row lCn = .Cells.SpecialCells(xlLastCell).Column b = .Range(.Cells(1, 1), .Cells(lRw, lCn)) sFileName = "C:\Temp\Base (" & Format(Now, "MMMM YYYY") & ").xlsx" End With Application.SheetsInNewWorkbook = 1 Set NewWB = Workbooks.Add NewWB.Sheets(1).Range(Cells(1, 1), Cells(lRw, lCn)) = b NewWB.SaveAs Filename:=sFileName$ NewWB.Close True If Dir(pathNewBook & nameNewBook) <> "" Then Workbooks.Open (sFileName$) Range("B4,C167").Value = a(1, 1) Range("C4").Value = a(1, 2) Range("B96").Value = a(1, 3) Range("D4").Value = a(1, 4) Range("E4").Value = a(1, 5) MsgBox "Complete", vbOKOnly, "Information" Else MsgBox "не удалось создать файл" End If UserForm1.Hide End Sub | Добавлено: elite128 В экселе по моему нет разницы, сравнить к-во строк в одной книге либо в разных. Путь только нужен ко второй, либо имя и перебором ее найти. Попробуйте так: Код: Sub test() Dim oWB As Workbook Dim lRwThisbook& Dim lRwNewbook& Set oWB = Workbooks.Open("C:\Test.xls") lRwThisbook = Cells(Rows.Count, "A").End(xlUp).Row lRwNewbook = oWB.Cells(Rows.Count, "A").End(xlUp).Row If lRwNewbook > lRwThisbook Then 'your code here End If End Sub |
| Всего записей: 209 | Зарегистр. 01-05-2010 | Отправлено: 23:10 11-07-2013 | Исправлено: andrewkard1980, 23:18 11-07-2013 |
|