Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [VBA] Посчитать количество непустых ячеек диапазона.  (Прочитано 26842 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleksandra
Гость
« : 02-11-2008 11:50 » 

Помогите пожалуйста мне с VBA, задали лабораторную никак сделать не могу.  Скромно так...
Вот то что нужно сделать: Пользовательская функция с параметром диапазоном. Посчитать количество непустых ячеек диапазона.

Может уже кто делал что-нибудь подобное. Помогите, пожалуйста, буду очень признательна.
« Последнее редактирование: 02-11-2008 12:22 от Finch » Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 02-11-2008 13:28 » 

Код:
Function my_count_nonblank(x As Range) As Integer
    my_count_nonblank = x.Cells.Count - WorksheetFunction.CountBlank(x)
End Function
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Aleksandra
Гость
« Ответ #2 : 02-11-2008 13:57 » 

А это полный код? а то у меня что-то не работает ничего. или это я не понимаю.  Я шокирован!
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 02-11-2008 18:24 » 

да, это полный код
попробуйте набрать в строке подсказки Excel "user-defined functions"

и обратите особенное внимание на статью http://office.microsoft.com/en-us/excel/HA010548461033.aspx?pid=CL100570551033

Из неё вы узнаете, что user-defined functions нужно определять в модуле, а так же как создавать модуль
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Aleksandra
Гость
« Ответ #4 : 03-11-2008 05:07 » 

Спасибо большое! Все работает. Очень вам благодарна за помощь!
Записан
Aleksandra
Гость
« Ответ #5 : 03-11-2008 05:10 » 

А вы не могли бы мне помочь с ещё одной лабораторной?  Краснею
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 03-11-2008 16:31 » 

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

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Aleksandra
Гость
« Ответ #7 : 04-11-2008 02:38 » 

Пользовательская функция, возвращающая массив. Во всех словах массива - аргумента букву "а" заменить на букву "б".

Заранее спасибо большое!!!  Улыбаюсь
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 04-11-2008 07:06 » 

Aleksandra,  совсем не смешно Жаль
есть хелп, есть понятие - работа со строками. в хелпе есть достаточное количество примеров. В конце концов, есть учебники.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 04-11-2008 07:54 » new

Вы точно воспроизвели задачу? Какой тип аргумента должен быть у функции, и что именно функция должна возвращать?

Ладно, вот вам такой вариант - функция возвращает массив
Код:
Public Function MyReplace(x As Range) As Variant
    Dim result() As String
    ReDim result(1 To x.Count)
    Dim pos As Integer
    pos = 1
    Dim cell As Range
    For Each cell In x.Cells
        Dim str As String
        str = cell.Text
        Dim str2 As String
        str2 = Replace(str, "a", "b", 1, -1)
        result(pos) = str2
        pos = pos + 1
    Next
    MyReplace = Array(result)
End Function
« Последнее редактирование: 04-11-2008 09:33 от npak » Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines