Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
DimaIvanov
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 5
#1

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

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

На форме в 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 13:24
Ответы с готовыми решениями:

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

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

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

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

Вставка текста в несколько файлов
Нужно вставить фрагмент (строку) текста в несколько файлов. Не могу понять, что...

4
VladConn
2 / 2 / 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
DimaIvanov
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
VladConn
2 / 2 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
02.06.2012, 00:33 #4
DimaIvanov,

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

vladconn
0
VladConn
2 / 2 / 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/default.aspx?scid=kb;EN-US;319832

vladconn
0
02.06.2012, 07:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 07:41

Вставка текста из файла на лист
Привет всем! Помогите с такой задачей. Есть скрипт, который по нажатию кнопки...

Вставка текста в текущее письмо
Доброго времени суток! Возникла необходимость по условию (текущее время)...

Вставка текста из Excel в Word
Здравствуйте, ув. форумчане. Помогите начинающему. У меня есть экселевский файл...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru