Ну дык в классе Workbooks нету свойства Cells, о чем и говорит ошибка 438 "Object doesn't support this property or method" - "Объект не поддерживает данное свойство или метод" Вы про лист забыли. И про точку перед Rows не стоит забывать во избежание возможных ошибок. [vba]
Код
Set Wb = Workbooks("BASA.xls") with Wb.Sheets("SheetName") Temp = .Cells(.Rows.Count, 1).End(xlUp).Row end with
[/vba]
Ну дык в классе Workbooks нету свойства Cells, о чем и говорит ошибка 438 "Object doesn't support this property or method" - "Объект не поддерживает данное свойство или метод" Вы про лист забыли. И про точку перед Rows не стоит забывать во избежание возможных ошибок. [vba]
Код
Set Wb = Workbooks("BASA.xls") with Wb.Sheets("SheetName") Temp = .Cells(.Rows.Count, 1).End(xlUp).Row end with
Посмотрите VBE->Tools->References Отключите там то, что Missing (если они есть) или если они нужны для работы, установите/зарегистрируйте недостающие библиотеки проверьте разрядность подключаемых библиотек в References и в декларациях
Посмотрите VBE->Tools->References Отключите там то, что Missing (если они есть) или если они нужны для работы, установите/зарегистрируйте недостающие библиотеки проверьте разрядность подключаемых библиотек в References и в декларацияхkrosav4ig
Набор кодированных знаков, который используется для представления данных платежа. Задается в виде цифрового признака кодированного набора: 1 – WIN12511; 2 – UTF82; 3 – КОI8-R3.
Набор кодированных знаков, который используется для представления данных платежа. Задается в виде цифрового признака кодированного набора: 1 – WIN12511; 2 – UTF82; 3 – КОI8-R3.
Private Sub CommandButton1_Click() Me.Hide On Error Resume Next With Application: .EnableEvents = 0: .ScreenUpdating = 0 With ActiveSheet.UsedRange Intersect(.Cells, .Offset(1)).Delete xlUp End With With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) Then With ThisWorkbook.Sheets(.List(i)).UsedRange Intersect(.Cells, .Offset(1)).Copy _ [A1].Offset(Cells(Rows.Count, 1).End(xlUp).Row) End With End If Next End With .EnableEvents = 1: .ScreenUpdating = 1: End With Unload Me End Sub Private Sub UserForm_Initialize() Dim SH As Worksheet For Each SH In ThisWorkbook.Sheets If Not SH Is ActiveSheet Then Me.ListBox1.AddItem SH.Name Next End Sub
[/vba]
Можно использовать форму для выбора листов [vba]
Код
Private Sub CommandButton1_Click() Me.Hide On Error Resume Next With Application: .EnableEvents = 0: .ScreenUpdating = 0 With ActiveSheet.UsedRange Intersect(.Cells, .Offset(1)).Delete xlUp End With With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) Then With ThisWorkbook.Sheets(.List(i)).UsedRange Intersect(.Cells, .Offset(1)).Copy _ [A1].Offset(Cells(Rows.Count, 1).End(xlUp).Row) End With End If Next End With .EnableEvents = 1: .ScreenUpdating = 1: End With Unload Me End Sub Private Sub UserForm_Initialize() Dim SH As Worksheet For Each SH In ThisWorkbook.Sheets If Not SH Is ActiveSheet Then Me.ListBox1.AddItem SH.Name Next End Sub
Sub Raschet() Dim i&, j&, r As Variant, v As Variant, a& Dim Inp1 As Range
Set Inp1 = [Sens!C80] Application.ScreenUpdating = False Application.Calculation = xlCalculationManual
For a = 3 To 9 Inp1 = Cells(13, a) i = 0 For Each v In [Sens!B14:B20].Value [Sens!C81] = v Application.Calculate i = i + 1 For Each r In Array(13, 47) For j = 0 To 20 Step 10 Cells(r + i, a + j) = [Sens!B1].Offset(r - 1, j) Next j, r, v, a Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
[/vba]
Здравствуйте. Пробуйте так. [vba]
Код
Sub Raschet() Dim i&, j&, r As Variant, v As Variant, a& Dim Inp1 As Range
Set Inp1 = [Sens!C80] Application.ScreenUpdating = False Application.Calculation = xlCalculationManual
For a = 3 To 9 Inp1 = Cells(13, a) i = 0 For Each v In [Sens!B14:B20].Value [Sens!C81] = v Application.Calculate i = i + 1 For Each r In Array(13, 47) For j = 0 To 20 Step 10 Cells(r + i, a + j) = [Sens!B1].Offset(r - 1, j) Next j, r, v, a Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
Option Explicit Sub Raschet() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Calc [Sens!C80], [Sens!C81], [Sens!B14:B20].Value, Array(13, 47) Calc [Sens!C81], [Sens!C82], [Sens!B23:B29].Value, Array(23, 57) Calc [Sens!C83], [Sens!C84], [Sens!B33:B39].Value, Array(33, 67) Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub Sub Calc(ByRef r1 As Range, ByRef r2 As Range, arr1 As Variant, arr2 As Variant) Dim a&, i&, j&, r As Variant, v As Variant For a = 3 To 9 r1 = Cells(arr2(0), a) i = 0 For Each v In arr1 r2 = v Application.Calculate i = i + 1 For Each r In arr2 For j = 0 To 20 Step 10 Cells(r + i, a + j) = [Sens!B1].Offset(r - 1, j) Next j, r, v, a r1 = 1 End Sub
[/vba]
Так надо? [vba]
Код
Option Explicit Sub Raschet() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Calc [Sens!C80], [Sens!C81], [Sens!B14:B20].Value, Array(13, 47) Calc [Sens!C81], [Sens!C82], [Sens!B23:B29].Value, Array(23, 57) Calc [Sens!C83], [Sens!C84], [Sens!B33:B39].Value, Array(33, 67) Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub Sub Calc(ByRef r1 As Range, ByRef r2 As Range, arr1 As Variant, arr2 As Variant) Dim a&, i&, j&, r As Variant, v As Variant For a = 3 To 9 r1 = Cells(arr2(0), a) i = 0 For Each v In arr1 r2 = v Application.Calculate i = i + 1 For Each r In arr2 For j = 0 To 20 Step 10 Cells(r + i, a + j) = [Sens!B1].Offset(r - 1, j) Next j, r, v, a r1 = 1 End Sub
Здравствуйте. Тут качаете файл и исходным кодом. Тут пример его использования [moder] А чё, файл нельзя было сюда положить? Ну сколько можно об одном и том же говорить? Завтра файл оттуда уберут и ссылка битой окажется. Довложил файл в это сообщение[/moder]
Здравствуйте. Тут качаете файл и исходным кодом. Тут пример его использования [moder] А чё, файл нельзя было сюда положить? Ну сколько можно об одном и том же говорить? Завтра файл оттуда уберут и ссылка битой окажется. Довложил файл в это сообщение[/moder]krosav4ig