Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 13:53   #1
Shaytan
 
Регистрация: 18.08.2009
Сообщений: 2
Подмигивание изменить часть объединенной ячейки невозможно

Добрый день, вечер.

В VBA я ну совсем не силен и случилась у меня такая беда
при выполнении скрипта (будет выложен ниже) возникает ошибка

Run-time error '1004': Изменить часть обьединенной ячейки невозможно.

"Дебугер" указывает на ошибку в строчке Range("B2:BL67").ClearContents

Подскажите в чём может быть проблема. Код макроса не менялся. Операция стандартная, всё работало на протяжении нескольких лет.

код макроса



Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 04.06.01 (Шубин)
'

'
Selection.AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
End Sub
Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 04.06.01 (Шубин)
'

'
Selection.AutoFilter Field:=1
End Sub


Function Find1(Mass, P, y)
For N = 1 To P
If Mass(N, 1) = y Then
Find1 = N
Exit For
End If
Next N
End Function
Function Find(Mass, P, y)
For N = 1 To P
If Mass(1, N) = y Then
Find = N
Exit For
End If
Next N
End Function

Sub Анализ()
Dim Mass()
Dim s As String

ind = 1
For C = 2 To 67
ind = ind + 1
ReDim Preserve Mass(1 To 64, 1 To ind)
For N = 2 To 64
Mass(N, 1) = Cells(1, N) ' дата
Mass(1, ind) = Cells(C, 1)
Mass(N, ind) = 0 ' время
Next N
Next C
H = InputBox("Введите номер первого файла")
If H = "" Then
GoTo Label1
End If
J = InputBox("Введите номер последнего файла")
If J = "" Then
GoTo Label1
End If
D = Int(H)
A = Int(J)
G = 0
ChDir "C:\Текущие договоры\"
For F = H To J
s = Str(F)
Set fs = New MyFileSearch
fs.LookIn = "C:\Текущие договоры\"
fs.FileName = "Авторадио" + s + ".XLS"
If fs.Execute() > 0 Then
Workbooks.Open FileName:="C:\Текущие договоры\Авторадио" + s + ".xls"
Sheets("Медиаплан").Select
If Cells(24, 4) < Mass(64, 1) Then
If Cells(24, 66) > Mass(2, 1) Then
For N = 4 To 66
R = Find1(Mass, 64, Cells(24, N))
If R <> 0 Then
For C = 29 To 94
If Cells(C, N) <> "" Then
W = Find(Mass, ind, Cells(C, 2))
If W > 0 Then
Mass(R, W) = Mass(R, W) + Cells(C, N)
End If
End If
Next C
End If
Next N
End If
End If
ActiveWorkbook.Close
End If
Next F
Range("B2:BL67").ClearContents
For N = 2 To ind
For C = 2 To 64
Cells(N, C) = Mass(C, N)
Next C
Next N
Label1:
End Sub


Спасибо всем откликнувшимся !
Shaytan вне форума Ответить с цитированием
Старый 18.08.2009, 14:04   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Да элементарно, как я полагаю. Вам VBA сам сказал в чем проблема. У Вас в этом B2:BL67 диапазоне расположены объединенные ячейки, объединение которых выходит за рамки указанного диапазона. Т.е. какая-то ячейка имеет границы, выходящие за указанный диапазон. Это либо B1:Bn,либо BL67:BLn, либо A1:Bn и т.д.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 18.08.2009 в 14:06.
The_Prist вне форума Ответить с цитированием
Старый 18.08.2009, 15:22   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вместо Range("B2:BL67").ClearContents
используйте Range("B2:BL67").Value = ""

В этом случае объединённые ячейки Вам не помешают:

EducatedFool вне форума Ответить с цитированием
Старый 19.08.2009, 10:02   #4
Shaytan
 
Регистрация: 18.08.2009
Сообщений: 2
По умолчанию !

Спасибо всем кто ответил, но пока что проблема не решена.
Ошибка не появляется но результата тоже нет ) курю...
Shaytan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как залить часть ячейки таблицы? Stilet JavaScript, Ajax 4 12.08.2009 14:39
Скопировать выделенную часть ячейки! nikolai_P Microsoft Office Excel 8 05.05.2009 12:27
как скопировать часть объединенной ячейки? Азамат Microsoft Office Excel 20 14.07.2008 22:50
изменить формат ячейки natali Microsoft Office Excel 2 08.10.2007 12:40
Как вытащить только часть символов из ячейки? Berkley Microsoft Office Excel 5 22.12.2006 00:43