пятница, 23 февраля 2018 г.

MS Excelда бутун диапазондаги ёзувларни бирлаштириш ("сцепить" - "concatenate") Сцепить всё в диапазоне в MS Excel


Агар C устунидаги ёзувларни вергул билан ёзиб чикиш керак булса биз "сцепить" функциясини кулланар эдик ва бу билан хар битта катакни белгилаб оркасидан ", " куйиш керак буларди:
Лекин агар бу функция бизга тез-тез керак булсачи?
У холда Excelнинг стандарт ечимлари бизга тугри келмайди ва бизга яна VBA ёрдам беради.
VBAда ёзилган тайёр функциядан фойдаланамиз:
Public Function СЦЕПИТЬДИАПАЗОН(ByRef ДИАПАЗОН As Excel.Range, Optional ByVal РАЗДЕЛИТЕЛЬ As String = "") As String
 
    Dim rCell As Range
    Dim MergeText As String
 
    For Each rCell In ДИАПАЗОН
        If rCell.Text <> "" Then
            MergeText = MergeText & РАЗДЕЛИТЕЛЬ & rCell.Text
        End If
    Next
 
    MergeText = Mid(MergeText, Len(РАЗДЕЛИТЕЛЬ) + 1)
    СЦЕПИТЬДИАПАЗОН = MergeText
End Function
Public Function СЦЕПИТЬДИАПАЗОН(ByRef ДИАПАЗОН As Excel.Range, Optional ByVal РАЗДЕЛИТЕЛЬ As String = "") As String

    Dim rCell As Range
    Dim MergeText As String

    For Each rCell In ДИАПАЗОН
        If rCell.Text <> "" Then
            MergeText = MergeText & РАЗДЕЛИТЕЛЬ & rCell.Text
        End If
    Next

    MergeText = Mid(MergeText, Len(РАЗДЕЛИТЕЛЬ) + 1)
    СЦЕПИТЬДИАПАЗОН = MergeText
End Function

(2 ёзув бир нарса юкоридаги)
VBAни очиб, модул яратиб шу функциядаги ёзувларни у ерга "копировать" килиш етарли.
Шунда биз формулани тахминан шундай ёза оламиз:
=СЦЕПИТЬдиапазон(C3:C8;", ")
бунда:



Тамом!
Умрбек Матрасулов

Манба

#VBA #office #Excel #сцепитьдиапазон #concatenaterange #ownformula #ownfunction #уз_формуласини_ёзиш #диапазон #range #автоматизация


Комментариев нет:

Отправить комментарий

кабул килинди

Excelдаги яна иккита функция (формула) VBA оркали: 1.PDF сахифалари сонини аниклаш. 2.Файлларни жойини кучириш (Move, Переместить)

1.PDF Файли сахифалари сонини чикариш. Мана шу функцияни модулга жойлаштирсак формуламиз PDF файл ичидаги сахифалар сонини чикариб бериши...