Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 5
1

Вставка текста. Появляется сообщение: Объект отключен

01.06.2012, 13:24. Показов 2073. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На форме в ListBox выбирается лист, который отображается
в другом ListBox1. В этом ListBox1 методом RowSource выбирается
ячейка, в которую вводится текст(CommandButton1_Click).
Появляется сообщение: Объект отключен
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub ListBox1_Change()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
 Cells(i+1, 2).Select
Exit For
End If
Next i
End Sub
 
Private Sub CommandButton1_Click()
If TextBox1.Value <> "" And ListBox1.ListIndex <> -1 Then
   With Range(ListBox1.RowSource).Item(ListBox1.ListIndex+1, 3)
        If .Value = "" Then
           .Item(1, 0).Value = TextBox1.Value
        End If
   End With
End If
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2012, 13:24
Ответы с готовыми решениями:

Вызванный объект был отключен от клиентов
Здравствуйте, подскажите, пожалуйста, как исправить проблему. в моем файле, я запускаю макрос...

Как убрать сообщение 'Запрос макросов отключен', не включая макросы!
Здравствуйте! Как убрать предупреждение системы безопасности 'Запрос макросов отключен', не...

Вставка текста до выделенного текста и после текста
Ребят, помогите решить задачку. Есть RichBox и в нем некий текст. Я выделил часть текста и при...

Вставка в тескт нужных символов с конца текста и сохранить в формате текста
Как вставить с другой ячейки и символы цифры считая с конца в такой формат есть ячейки С ...

4
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
01.06.2012, 16:31 2
DimaIvanov,

Взял ваш код и добавил это для наполнения листа:
Visual Basic
1
2
3
Private Sub UserForm_Initialize()
    ListBox1.RowSource = "a1:a4"
End Sub
Сообщения "Объект отключен" не появилось. Покажите весь код.

vladconn
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 5
01.06.2012, 21:22  [ТС] 3
На форме в одном ListBox выбирается лист, в другом ListBox
вводится значение напротив фамилии. Вопрос в том, что при добавлении
фамилии кликом на CommandButton4 Excel отключается
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Private Sub CommandButton1_Click()
Dim Msg, Title, Responce As String
Dim Style
Msg = "Хотите закончить работу? "
Style = vbYesNo + vbCritical + vbDefaultButton1
Title = "Завершение работы"
Responce = MsgBox(Msg, Style, Title)
If Responce = vbYes Then
Unload Me
End If
End Sub
Private Sub CommandButton2_Click()
ActivateSelectedSheet
End Sub
Private Sub CommandButton3_Click()
'  Ввод значения
    If CStr(SpinButton1.Value) = TextBox2.Text Then
        ActiveCell = SpinButton1.Value
'        Unload Me
    Else
        MsgBox "Неправильное значение", vbCritical
        TextBox2.SetFocus
        TextBox2.SelStart = 0
        TextBox2.SelLength = Len(TextBox2.Text)
    End If
End Sub
Private Sub CommandButton4_Click()
If TextBox3.Value <> "" And ListBox3.ListIndex <> -1 Then
   With Range(ListBox3.RowSource).Item(ListBox3.ListIndex + 1, 3)
        If .Value = "" Then
           .Item(1, 0).Value = TextBox3.Value
        Else
           .Item(1, 0).End(xlToRight).Value = TextBox3.Value
        End If
   End With
End If
End Sub
Private Sub CommandButton5_Click()
Dim Rw As Integer
For Rw = 1 To 45
If Cells(Rw, 2) = TextBox4.Text Then Cells(Rw, 2).Delete
Next Rw
End Sub
 
 
Private Sub ListBox3_Change()
For i = 0 To ListBox3.ListCount - 1
P = i + 1
If ListBox3.Selected(i) Then Cells(P, 2).Select
Next i
Selection.Activate
If ActiveCell.Offset(0, 1) = "" Then ActiveCell.Offset(0, 1).Activate Else: ActiveCell.End(xlToRight).Offset(0, 1).Activate
End Sub
 
Private Sub TextBox2_Change()
 Dim NewVal As Integer
    NewVal = Val(TextBox2.Text)
    If NewVal >= SpinButton1.Min And _
        NewVal <= SpinButton1.Max Then _
        SpinButton1.Value = NewVal
End Sub
Private Sub TextBox2_Enter()
'   Выделение текста TextBox
    TextBox2.SelStart = 0
    TextBox2.SelLength = Len(TextBox2.Text)
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ActiveCells = TextBox2
End Sub
 
Private Sub UserForm_Initialize()
Dim cSheets As Integer
Dim i As Integer
cSheets = Sheets.Count
ListBox1.Clear
For i = 1 To cSheets
   ListBox1.AddItem Sheets(i).Name
Next
With SpinButton1
'       Определение пределов
        .Min = 1
        .Max = 200
'       Инициализация        .Value = 1
        TextBox2.Text = .Value
    End With
ListBox3.RowSource = "A1:B45"
End Sub
Sub ActivateSelectedSheet()
If ListBox1.ListIndex > -1 Then
Sheets(ListBox1.List(ListBox1.ListIndex)).Select
End If
End Sub
Private Sub ListBox1_Click()
ListBox3.RowSource = _
Worksheets(ListBox1.Value).Range("A1:B45").Address(External:=True)
Call CommandButton2_Click
Call ListBox3_Change
End Sub
Private Sub SpinButton1_Change()
    TextBox2.Text = SpinButton1.Value
End Sub
0
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
02.06.2012, 00:33 4
DimaIvanov,

Да, проблема. Пока не ясно, но для начала поставьте SP2 или SP3, а лучше EXCEL 2003. Может более развернуто будет описание. Вы там нечто вроде круговых ссылок не создаете?

vladconn
0
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
02.06.2012, 07:41 5
DimaIvanov,

Да, ошибка не ловится, значит это проблема Excel, но вызванная какими-то "неправильностями" в коде.

Похоже, что именно эту ошибку можно избежать, если лист не пуст: я заполнил А1:F14 цифрами и переписал код чуть:
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub CommandButton4_Click()
    If TextBox3.Value <> "" And ListBox3.ListIndex <> -1 Then
        If ActiveSheet.Range(ListBox3.RowSource).Item(ListBox3.ListIndex + 1, 3).Value = "" Then
            ActiveSheet.Range(ListBox3.RowSource).Item(ListBox3.ListIndex + 1, 3).Item(1, 0).Value = TextBox3.Value
        Else
            ActiveSheet.Range(ListBox3.RowSource).Item(ListBox3.ListIndex + 1, 3).Item(1, 0).End(xlToRight).Value = TextBox3.Value
        End If
    End If
End Sub
И здесь кое-что:
http://support.microsoft.com/d... -US;319832

vladconn
0
02.06.2012, 07:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2012, 07:41
Помогаю со студенческими работами здесь

Вставка текста из одной ячейки в другую с добавлением текста макросом
Здравствуйте! Возникли сложности с созданием макроса. Нужно сделать макрос с вставкой текста из...

Вставка текста одновременно в 2 окна ввода текста
Добрый день! Помогите, пожалуйста. Есть код: Private Sub CommandButton4_Click() Dim oDataObject...

Когда нажимаю на кнопку - на сайте появляется новый объект
Привет всем. Тут такие дела. Когда нажимаю на 1. &quot;Клацни сюда!&quot;, должно появятся 2. &quot;Нижнее...

Вставка текста в слайд Powerpoint с переносом длинного текста на новый слайд
Здравствуйте, при вставке длинного текста в форму слайда из таблицы Excel, текст начинает выходить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru