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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2010, 21:20   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Вставить и удалить значения, в диапазоне ячеек.

Здравствуйте.
Подскажите как на основание условия (в примере) вставить выбранное значение UserForm4.ComboBox2 в ячейки, начиная с Cells(i, 30) и до тридцать одной ячейки включительно, и удалить значения диапазонов в ячейках, начиная с Cells(i, 30) и с Cells(i, 31)и до тридцать одной ячейки вниз включительно?
Вложения
Тип файла: rar primer.rar (22.9 Кб, 11 просмотров)
segail вне форума Ответить с цитированием
Старый 30.06.2010, 22:11   #2
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Как удалить разобрался
Код:
.Cells(i, 30).Resize(31) = "": .Cells(i, 31).Resize(31) = ""
А как вставить?
segail вне форума Ответить с цитированием
Старый 01.07.2010, 05:41   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А в чем вопрос? Какая разница, что вставлять: пустое значение
Код:
.Cells(i, 30).Resize(31) = ""
или любое другое:
Код:
.Cells(i, 30).Resize(31) = UserForm4.ComboBox2
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.07.2010, 09:36   #4
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Я так пробовал
Код:
Public Sub Normativ_Потери()
    Dim i As Integer
    For i = 1 To 450
        With Sheets("Отчет")
            If UserForm4.ComboBox1.Text = .Cells(i, 27).Text Then
                .Cells(i, 30).Resize(31).Value = UserForm4.ComboBox2
            End If
        End With
      Next
End Sub
не вставляется значение ComboBox2...
segail вне форума Ответить с цитированием
Старый 01.07.2010, 10:28   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Разобрался, условие немного было не правильным.

только вот при выполнение кода (вставка числовых значений)
.Cells(i, 30).Resize(31).Value = UserForm4.ComboBox2
числовые значения формируются в текстовые, value не помогает, функция преобразования CInt переменной в значение, строки CInt (UserForm4.ComboBox2) , тоже не помогает.
Как преобразовать в числовое значение?
segail вне форума Ответить с цитированием
Старый 01.07.2010, 10:35   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Попробуйте после вставки значений выполнить код:
Код:
With .Cells(i, 30).Resize(31)
    a = .Value
    .NumberFormat = "General"
    .Value = a
End With
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.07.2010, 10:36   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте так (без примера не проверял):
.Cells(i, 30).Resize(31).NumberFormat = "0.00"
.Cells(i, 30).Resize(31).Value = UserForm4.ComboBox2
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.07.2010, 10:59   #8
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Попробовал оба кода
У SAS888 целые числа формируются в числовые, а с десятичными знаками через запятую нет...
У Hugo121 без изменений…
segail вне форума Ответить с цитированием
Старый 02.07.2010, 04:40   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
value не помогает, функция преобразования CInt переменной в значение, строки CInt (UserForm4.ComboBox2) , тоже не помогает.
В ComboBox всегда находится текстовое значение. Value должно помочь. Смотря как это применять. Попробуйте так:
Код:
.Cells(i, 30).Resize(31) = Val(Replace(UserForm4.ComboBox2, ",", "."))
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.07.2010, 11:20   #10
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Здравствуйте, применил функцию CSng
Код:
.Cells(i, 30).Resize(31).Value = CSng(UserForm4.ComboBox2.Text)
Только не знаю, как эта функция работает с национальными настройками, если в настройках будет стоять точка…
А так вроде работает нормально…
segail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить не нужные строки в диапазоне valerij Microsoft Office Excel 8 06.03.2010 23:21
как разделить значения ячеек по формату ячеек? ARIRAN Microsoft Office Excel 6 11.12.2009 15:30
Вставка группы пустых ячеек в выбранном диапазоне slba Microsoft Office Excel 4 30.10.2009 08:48
Заливка автофигуры и значения ячеек Иванов_ДМ Microsoft Office Excel 9 23.09.2009 11:22
Как вставить одинаковое примечание к группе ячеек? Kona Microsoft Office Excel 3 30.10.2008 12:40