• Vba excel dize işlevleri. VBA işlevlerini kullanma örnekleri. Dize İşlemleri

    Dizelerle çalışmayı basitleştirmek için, dizeleri başka türdeki verilere dönüştürmek, bir dizede bir alt dize bulmak, bir dizenin uzunluğunu belirlemek vb. gibi işlemleri büyük ölçüde kolaylaştıran bir dizi yerleşik işlev vardır. dizelerle çalışmak için en yaygın işlevleri dikkate alacaktır.

    1) Bir dizginin uzunluğunu belirleme işlevi LENGTH(string), bir dizgedeki karakter sayısını, sondaki boşluklar da dahil olmak üzere döndürür.

    SELECT LENGTH('string ') FROM DUAL 7 değerini döndürür.

    2) UPPER(dize), LOWER(dize), INITCAP(dize) karakter kayıtlarını dönüştürme işlevleri. UPPER() işlevi, karakterleri büyük harfe dönüştürmek için kullanılır.

    DUAL'DEN UPPER('string') SELECT, STRING döndürür.

    Bir karakter dizisinin karakterlerini küçük harfe çevirmek gerekirse LOWER() fonksiyonu kullanılır.

    DUAL'DEN SELECT LOWER('STRinG') , dize döndürür.

    INITCAP işlevi, sözcükler arasındaki sınırlayıcı karakterin boşluk olması koşuluyla, bir sözcüğün her ilk karakterini büyük harfe ve diğer tüm karakterleri küçük harfe dönüştürür.

    SELECT INITCAP('string1 string2') FROM DUAL, String1 String2 dizisini döndürür.

    3) Baştaki ve sondaki boşlukları kırpmak için işlevler LTRIM(dize), RTRIM(dize), TRIM(dize). Buna göre, birinci işlev dizenin tüm ilk boşluklarını kırpar, ikincisi tüm sondaki boşlukları ve üçüncüsü tüm ilk ve sondaki boşlukları kırpar.

    DUAL'DEN LTRIM(' str1') SELECT, str1 dizesini döndürür,
    SELECT RTRIM('str2 ') FROM DUAL, str2 dizesini döndürür,
    DUAL'DEN SELECT TRIM(' str3 ') , str3 dizesini döndürür.

    4) Bir dizenin bir kısmını başka bir dizeyle değiştirme işlevi REPLACE(original_string, değiştirilecek alt dize, değiştirilecek alt dize). Daha fazla netlik için, bir tablonun bazı metin alanlarında bir sayının saklandığı bir örneği ele alalım. Ayrıca bazı alanlarda tamsayı ve kesirli kısımlar arasındaki ayırıcı karakter “.” olup, daha fazla veri işlemek için tüm alanlarda “,” olması gerekmektedir. Bunun için REPLACE fonksiyonunu aşağıdaki gibi kullanıyoruz. DEĞİŞTİR(alan1, '.', ',') ve tüm "." alandaki alan "," sembolü ile değiştirilecektir.

    SELECT REPLACE('My_string','_','@') FROM DUAL bir dize döndürür [e-posta korumalı].

    5) Verileri diğer veri türlerine dönüştürme işlevleri. TO_CHAR(sayı) bir sayıyı metne dönüştürür. TO_NUMBER(dize) metni bir sayıya dönüştürür. TO_DATE(dize, tarih biçimi), bir dizeyi belirtilen biçimde bir tarihe dönüştürür.

    DUAL'DEN SELECT TO_CHAR(123) 123. satırı döndürür,
    DUAL'DEN SELECT TO_NUMBER('12345') 12345 sayısını döndürür,
    DUAL'DEN SELECT TO_DATE('01.01.2010','dd.mon.yyyy') 01.JAN.2010 tarihini döndürür.

    6) INSTR(kaynak_dizgisi, altdizgi, karakter_numarası) dizisinde bir altdizi oluşumunu belirleme işlevi. Bu fonksiyon, aranan alt dizginin (varsa) başladığı kaynak dizgideki karakter sayısını belirlemenizi sağlar. Aksi takdirde 0 döndürülür.Örneğin, Table1 tablosundaki, adında “manager” alt dizesinin geçtiği tüm konumları belirlememiz gerekir. Aşağıdaki operatör bunun için oldukça uygundur.

    INSTR(POST, 'yönetici', 1) > 0 olduğu TABLO1'DEN * SEÇİN.

    Yani, SELECT deyimi yalnızca TABLE1 tablosundan aranan "yönetici" alt dizesinin bulunacağı kayıtları gösterecektir. Ayrıca arama ilk karakterden itibaren yapılacaktır. Arama farklı bir konumdan yapılacaksa üçüncü parametrede aramayı başlatacak karakter sayısı belirtilir.

    SELECT INSTR('Small string', 'string', 1) FROM DUAL 7 değerini döndürür,
    SELECT INSTR('Small string', 'String', 1) FROM DUAL 0 değerini döndürür.

    7) Kaynak dizide SUBSTR (source_string, number_of_initial_symbol, number_of_characters) alt dizisini çıkarma işlevi. Şöyle bir örnek ele alalım, kullanıcı tablosunda adres yerleşim yeri adı, sokak adı, ev numarası şeklinde saklanmaktadır. Ayrıca yerleşim yeri adına kesinlikle 20 karakter ayrıldığını (yerleşim yeri adı 20 karakterden azsa geri kalanı boşluklarla doldurulur), cadde adına 30 karakter tahsis edildiğini kesin olarak biliyoruz. ev numarası 3 karakter. Ardından, tüm adresleri tablomuzdan diğerine aktarmamız gerekiyor ve aynı zamanda adresin 3 bileşeninin de farklı alanlarda olması gerekiyor. Adres bileşenlerini ayıklamak için SUBSTR() işlevini kullanırız.

    TABLO_1'DEN SUBSTR(TABLE_1.ADDRESS, 1, 20) ŞEHİR, SUBSTR(TABLE_1.ADDRESS, 21, 30) SOKAK, SUBSTR(TABLE_1.ADDRESS, 52, 3) ŞEHİR SEÇİN

    Elbette veri aktarmak için INSERT deyimini kullanmanız gerekir, ancak ele alınan örnek SUBSTR işlevinin işleyişini anlamak için oldukça uygundur.
    SELECT SUBSTR('My_string', 4, 3) FROM DUAL, str dizesini döndürür.

    Yukarıda tartışılan işlevler giriş parametrelerinde kullanılabilir. Yani belirli bir karakterden sonraki tüm karakterleri seçmemiz gerekirse, INSTR işlevinden istenen karakterin numarası ALTSTR işlevine geçirilebilir. Örneğin, tablo alanından "," sonrasında yer alan tüm karakterleri aktarmanız gerekiyorsa, bu yapıyı kullanabilirsiniz.
    DUAL'DEN SUBSTR(My_string, INSTR(My_string, ',', 1), LENGTH(My_string)- INSTR(My_string, ',', 1)+1) SEÇİN.
    Başlangıç ​​karakterini belirlemek için, "," alt dizelerinin ilk geçtiği karakter numarasını döndürecek olan INSTR() işlevini çağırıyoruz. Ardından, dizenin sonuna kadar olan karakter sayısını, dizenin uzunluğu ile alt dizenin ilk geçtiği yerin sayısı arasındaki fark olarak tanımlarız.

    8) Karakter kodunu belirlemek için, dizgenin 1 karakterinin kodunu döndüren ASCII(dize) işlevi kullanılır. Örneğin

    DUAL'DEN ASCII(W) SEÇİN, 87 değerini döndürür.

    9) Bir karakter kodunu bir CHR (sayı) karakterine dönüştürmek için ters işlev.

    DUAL'DEN CHR(87) SEÇİN, W karakterini döndürür.

    Oracle'da sayılarla çalışmak için işlevler.

    Oracle, sayılarla çalışmak için bir dizi işleve sahiptir. Bunlar, bir sayıyı POWER() gücüne yükselten, ROUND()'u yuvarlayan, vb. işlevleri içerir.

    1) ABS(sayı) işlevi, bağımsız değişkenin mutlak değerini döndürür.
    DUAL'DEN ABS(-3) SEÇİN, 3 değerini döndürür.

    2) CEIL(sayı) işlevi, geçirilen parametreden büyük veya ona eşit olan en küçük tamsayıyı döndürür.
    DUAL'DEN TAVAN SEÇ(4.5) 5 değerini döndürür.

    3) FLOOR(sayı) işlevi, iletilen parametreden küçük veya ona eşit olan en büyük tamsayıyı döndürür.
    DUAL'DEN KAT(3.8) SEÇ, 3 değerini döndürür.

    4) MOD(sayı_1, sayı_2) işlevi, birinci parametrenin ikinciye bölümünden kalanı döndürür.
    DUAL'DEN MOD SEÇİN(5, 3) 2 döndürür. Not. İkinci parametre 0 ise, fonksiyon birinci parametreyi döndürür.

    5) Yuvarlama işlevi ROUND(sayı_1, sayı_2). Geçen ilk bağımsız değişkeni, ikinci bağımsız değişkende iletilen basamak sayısına yuvarlar. İkinci parametre belirtilmezse 0'a eşit alınır, yani bir tamsayı değerine yuvarlama yapılır. örnekler
    DUAL'DEN YUVARLAK(101.34) SEÇİN, 101 değerini döndürür,
    DUAL'DEN YUVARLAK(100.1268, 2) SEÇİN 100.13 döndürür
    DUAL'DEN YUVARLAK SEÇİN(1234000.3254, -2) 1234000 döndürür,
    DUAL'DEN YUVARLAK(-100.122, 2) SEÇİN -100.12 döndürür.

    6) Değer kesme işlevi TRUNC(sayı_1, sayı_2). İkinci parametrede belirtilen ondalık basamak sayısına kesilerek birinci parametrenin değerini döndürür. örnekler
    DUAL'DEN TRUNC(150.58) SEÇİN, 150 değerini döndürür
    DUAL'DAN TRUNC(235.4587, 2) SEÇİN, 235.45 değerini döndürür
    DUAL'DEN SELECT TRUNC(101.23, -1) 100 değerini döndürür

    7) Oracle DBMS bir dizi trigonometrik fonksiyona sahiptir SIN(sayı), COS(sayı), TAN(sayı) ve bunların tersleri ACOS(sayı), ASIN(sayı), ATAN(sayı). İsme karşılık gelen trigonometrik fonksiyonun değerini döndürürler. Doğrudan fonksiyonlar için parametre açının radyan cinsinden değeridir ve ters fonksiyonlar için fonksiyonun değeridir. örnekler
    DUAL'DEN COS(0.5) SEÇİN, 0.877582561890373 değerini döndürür
    DUAL'DEN SIN(0.5) SEÇİN, 0.479425538604203 değerini döndürür
    DUAL'DEN TAN(0.5) SEÇİN, 0.546302489843791 değerini döndürür
    DUAL'DEN ACOS(0.5) SEÇİN, 1.0471975511966 değerini döndürür
    DUAL'DEN ASIN(0.5) SEÇİN, 0.523598775598299 değerini döndürür
    DUAL'DEN ATAN(0.5) SEÇİN, 0.463647609000806 değerini döndürür

    8) Hiperbolik fonksiyonlar. SINH(sayı),
    COSH(sayı), TANH(sayı). SINH() iletilen parametrenin hiperbolik sinüsünü döndürür, COSH() iletilen parametrenin hiperbolik kosinüsünü döndürür, TANH() iletilen parametrenin hiperbolik tanjantını döndürür. örnekler
    DUAL'DEN COSH(0.5) SEÇİN, 1.12762596520638 değerini döndürür
    DUAL'DEN SELECT SINH(0.5) FROM 0.521095305493747 SELECT TANH(0.5) FROM DUAL 0.46211715726001 değerini döndürür

    9) Üs alma işlevi POWER(sayı_1, sayı_2). örnekler
    İKİLİDEN GÜCÜ SEÇ(10, 2) 100 döndürür
    İKİLİDEN GÜCÜ SEÇ(100, -2) 0.0001 değerini döndürür

    10) Logaritmik fonksiyonlar. LN(sayı), geçirilen parametrenin doğal logaritmasını döndürür, LOG(sayı_1, sayı_2), birinci parametreye verilen tabana göre geçirilen ikinci parametrenin logaritmasını döndürür. Ayrıca ilk parametre sıfırdan büyük olmalı ve 1'e eşit olmamalıdır. Örnekler
    DUAL'DEN LN(5) SEÇİN, 1.6094379124341 değerini döndürür
    DUAL'DEN LOG(10, 3) SELECT 0.477121254719662 değerini döndürür

    11) Karekök SQRT(sayı) çıkarma işlevi. Örnek
    DUAL'DEN KAREKÖK(4) SEÇİN, 2 değerini döndürür.

    12) e sayısını EXP'nin (sayı) gücüne yükseltme işlevi. Örnek
    DUAL'DEN EXP(2) SEÇİN, 7.38905609893065 değerini döndürür.

    Oracle'da Tarih İşlevleri

    Uygulamada, verileri tarih biçiminde analiz etmek, bunlar üzerinde bazı işlemler yapmak, formatı değiştirmek çok sık gereklidir. Tüm bu işlemler zaten yerleşik işlevler olarak uygulanmaktadır. Bunların en temellerini ele alalım.

    1) ADD_MONTHS(tarih, ay_sayısı), ilk parametrede geçirilen tarihten ikinci parametrede belirtilen ay sayısıyla ayrılan tarihi döndürür. örnekler
    DUAL'DEN ADD_MONTHS('01-JAN-2010', 2) SEÇİN, '03/01/2010' tarihini döndürür
    DUAL'DEN ADD_MONTHS('01-JAN-2010', -3) SEÇİN '10/01/2009' tarihini döndürür
    SELECT ADD_MONTHS('30-JAN-2010', 1) DUAL'DEN '28.02.2010' tarihini döndürür

    2) SYSDATE işlevi, geçerli tarih ve saati belirlemek için kullanılır. Bu işlevin kapsamı ilk bakışta göründüğünden çok daha geniştir. Her şeyden önce, veritabanına veri girişi üzerinde kontroldür. Birçok tabloda, son değişiklik tarihini saklamak için ayrı bir alan ayrılmıştır. Raporlar için belirli giriş parametrelerini kontrol etmek de çok uygundur, özellikle bunların güncel tarihten daha eski olmaması gerekiyorsa. Tarihe ek olarak, bu işlev ayrıca zamanı en yakın saniyeye döndürür. Örnek
    DUAL'DEN SYSSDATE SEÇİN '22.05.2010 14:51:20' tarihini döndürür

    3) Ayın son gününü belirlemeniz gerekiyorsa LAST_DAY (tarih) işlevi bunun için oldukça uygundur. Bir ayda kalan gün sayısını belirlemek için kullanılabilir.
    DUAL'DEN LAST_DAY(SYSDATE) - SYSDATE SEÇİN.
    Bu ifadenin yürütülmesi sonucunda, geçerli tarihten ay sonuna kadar olan gün sayısı görüntülenecektir. Örnek
    DUAL'DEN LAST_DAY('15-FEB-2010') SEÇİN '28.02.2010' tarihini döndürür.

    4) MONTHS_BETWEEN(tarih_1, tarih_2) tarihleri ​​arasındaki ay sayısını belirleme işlevi. örnekler
    DUAL'DEN MONTHS_BETWEEN('01-JUL-2009', '01-JAN-2010') SEÇİN -6 döndürür
    DUAL'DEN MONTHS_BETWEEN('01-JUL-2009', '10-JAN-2010') SEÇİN -6.29032258064516 döndürür.
    Not. Ayların günleri aynıysa işlev bir tamsayı döndürür, aksi takdirde sonuç bir kesir olur ve aydaki gün sayısı 31 olur.

    5) NEXT_DAY(tarih, hafta içi) işlevi, ikinci parametrede geçen haftanın gününe karşılık gelen birinci parametrede geçen tarihten sonraki tarihi belirlemenizi sağlar. Örnek
    SEÇİN NEXT_DAY('01-JUL-2009', 'pzt') DUAL'den '07/06/2009' tarihini döndürür, yani 1 Temmuz 2009'dan sonraki Pazartesi ayın 6'sıdır.

    6) Tarihi yuvarlama YUVARLAK(tarih, format). İkinci parametre isteğe bağlıdır, belirtilmezse 'DD' olarak alınır, yani en yakın güne yuvarlama yapılır. örnekler
    DUAL'DEN YUVARLAK(SYSDATE) SEÇİN '5/23/2010' tarihini döndürür
    DUAL'DEN YUVARLAK(SYSDATE, AY) SEÇİN, ayın en yakın ilk gününe yuvarlanmış olarak '06/01/2010' tarihini döndürür.

    7) Tarih kesme. TRUNC(tarih, biçim) işlevi. Yukarıda tartışıldığı gibi, ikinci bir parametreye sahip olmayabilir. Bu durumda ertesi güne kadar kesme işlemi yapılır. örnekler
    DUAL'DEN TRUNC(SYSDATE) SEÇİN '5/22/2010' tarihini döndürür
    DUAL'DEN TRUNC(SYSDATE, 'WW') SEÇİN, '5/1/2010' tarihini döndürür
    DUAL'DEN TRUNC(SYSDATE, 'Day')) SEÇİN '5/16/2010' tarihini döndürür.

    Oracle'da Veri Dönüştürme İşlevleri

    Bu bölüm, verilerin çeşitli biçimlere dönüştürülmesine ayrılmıştır. Uygulamada, dize değerlerine sayı olarak davranmanın gerekli olduğu durumlar oldukça yaygındır ve bunun tersi de geçerlidir. Az sayıda işleve rağmen, çok karmaşık uygulamalı sorunları çözmek için yetenekleri oldukça yeterlidir.

    1) TO_CHAR(veri, format). İlk bakışta, sözdizimi oldukça basittir, ancak ikinci parametre sayesinde, verileri hangi formata dönüştüreceğinizi çok doğru bir şekilde tanımlayabilirsiniz. Böylece hem bir tarih hem de bir sayısal değer dizgeye dönüştürülebilir. Bir tarihi dizgeye dönüştürme seçeneğini göz önünde bulundurun. En yaygın biçimlerin değerleri tabloda verilmiştir, daha ayrıntılı bilgiler teknik belgelerde yer almaktadır.

    Bir sayıyı dizgeye dönüştürmek için biçim değerleri tablosu.

    DUAL'DEN TO_CHAR(SYSDATE, 'D-MONTH-YY') SELECT, '7-MAY -10' dizesini döndürür
    DUAL'DEN TO_CHAR(SYSDATE, 'DDD-MM-YYYY') SELECT, '142-05-2010' dizesini döndürür
    DUAL'DEN TO_CHAR(SYSDATE, 'Q-G-MM-YYY') SELECT, '2-7-05-010' dizesini döndürür
    DUAL'DEN TO_CHAR(1050, '9.99EEEE) SELECT, ' 1.050E+03' dizisini döndürür
    DUAL'DEN SELECT TO_CHAR(1400, '9999V999') '1400000' dizesini döndürür
    DUAL'DEN TO_CHAR(48, 'RM') SEÇİN, ' XLVIII' dizesini döndürür

    2) Bir diziyi TO_DATE(dize, biçim) tarihine dönüştürme işlevi. Olası format değerleri yukarıda zaten tartışıldı, bu yüzden bu işlevin kullanımına ilişkin birkaç örnek vereceğim. örnekler
    İKİLİDEN TO_DATE('01/01/2010', 'DD.MM.YYYY') SEÇİN, '01/01/2010' tarihini döndürür
    DUAL'DEN TO_DATE('01.JAN.2010', 'DD.MON.YYYY') SEÇİN, '01.01.2009' tarihini döndürür
    İKİLİDEN SELECT TO_DATE('15-01-10', 'DD-MM-YY') '1/15/2010' tarihini döndürür.

    3) Bir diziyi TO_NUMBER(dize, biçim) sayısal değerine dönüştürme işlevi. En yaygın biçim değerleri tabloda listelenmiştir, bu nedenle örnekler kullanarak bu işlevin kullanımını ele alalım. örnekler
    DUAL'DEN SELECT TO_NUMBER('100') 100 sayısını döndürür
    DUAL'DEN SELECT TO_NUMBER('0010.01', '9999D99') 10.01 sayısını döndürür
    DUAL'DEN SELECT TO_NUMBER("500,000","999G999") 500000 sayısını döndürür.

    (http://www.cyberforum.ru/vba/thread638743.html)

    seçenek 1

    strW= (="KOROTEEV DMITRY") strB=Değiştir(Değiştir(strW, Chr(61), ""), Chr(34), "")

    Seçenek

    Bir bayt dizisi de kullanabilirsiniz:

    Sub n() Dim Mass() As Byte, n As Long, Zam As String, TXT As String TXT = "=""DMITRY KOROTEEV" Kütle = StrConv(TXT, vbFromUnicode) n = 0 için UBound(Kütle) If kütle (N)<>34 Ve Kütle(n)<>61 Sonra Zam = Zam + Chr$(Mass(n)) Sonraki MsgBox Zam End Sub

    Seçenek

    Veya orta filtreleme:

    Sub nn() Dim n Uzun Olarak, TXT Dizi Olarak, L Dizi Olarak, Zam Dizi Olarak TXT = "=""DMITRY KOROTEEV" For n = 1 To Len(TXT) L = Mid$(TXT, n, 1) If L<>"""" Ve ben<>"=" Sonra Zam = Zam + L Sonraki MsgBox Zam End Sub

    Satır 6, bir benzer ile değiştirilebilir:
    Visual Basic kodu
    1
    L Beğenirseniz "[!""=]" Zam = Zam + L

    Seçenek

    Yine de konum arama ve yineleme yoluyla:

    Alt test() Dim n As Long, txt As String txt = "=""DMITRY KOROTEEV" txt = Change(txt, "=") txt = Change(txt, """") MsgBox txt End Sub Function Change( txt Dizi Olarak, Dizi Olarak Ne, İsteğe Bağlı Konum = 1) Dim n Uzunluk Olarak Konum ise<>0 Sonra n = InStr(Konum, txt, Ne) Değişim = Orta$(txt, Konum, IIf(n - Konum)< 0, Len(txt), n - Pos)) + Change(txt, What, IIf(n = 0, 0, n + 1)) End If End Function

    Düzenli ifadeler de kullanabilirsiniz, ancak ben onları bilmiyorum.

    Seçenek

    Sağdan sola arama ve yineleme yoluyla:

    Visual Basic kodu
    1 2 3 4 5 6 7 8 Fonksiyon Değişikliği(Dize Olarak Metin, Dizge Olarak Ne, Uzun Olarak İsteğe Bağlı Poz) Dim n As Long Eğer Pos = 0 ise Pos = Len(txt) If Pos<>-1 Sonra n = InStrRev(txt, What, Pos) Change = Change(txt, What, IIf(n = 1, -1, n - 1)) + Mid$(txt, n + 1, Pos - n) End Fonksiyonu Sonlandırırsa

    Seçenek

    Ve orada Bölmek Ve Katılmak

    Strb = Join(Split(Join(Split(strW, "="), ""), """"), "")

    Konu dışı: Ama bu sadistler için

    Büyük ve küçük harf

    ActiveDocument.Range ile "uppercase.Text = Ucase(.Text) "lowercase.Text = Lcase(.Text) İle Bitiş

    veya StrConv() - bir dizeyi dönüştürün (Unicode'a ve Unicode'dan büyük ve küçük harfe, sözcüklerin ilk harfini büyük harf yapın, vb.) - aşağıya bakın

    Dize İşlemleri

    String türündeki veriler için yalnızca bir işlem vardır - birleştirme (birleştirme). Örneğin, "Peter" & "" & "Ivanovich" üç dizi değerinin birleştirme işleminin sonucu, "Peter Ivanovich" dizisi olacaktır. Birleştirme işlemi için başka bir operatör kullanmak da mümkündür, örneğin: "on" + "bininci". Bu ifadeler arasındaki fark, ilk durumda, işlenenlerin herhangi bir türden değerler olabilmesidir (basitçe dizelere dönüştürüleceklerdir) ve ikinci durumda, her iki işlenen de String türünde olmalıdır. Dizelerle çalışmak için çok sayıda işlev vardır (tablo. Dizelerle çalışmak için işlevler).

    Tablo "Dizelerle çalışma işlevleri"

    İşlev Tanım Örnek
    Uzunluk(str) Bir dizenin uzunluğunu belirtir a=len("Karakterler") a=9'dan sonra gelir
    Sol (<строка>, <длина>) Argümandan alıntı<строка>solda belirtilen karakter sayısı Sol(" 1234dize", 4) = "1234"
    Sağ(<строка>, <длина>) Argümandan alıntı<строка>sağda belirtilen sayıda karakter Sağ(" 1234dize", 6) ="dize"
    Orta(<строка>, <старт> [, <длина>]) Argümandan alıntı<строка>konumdan başlayarak, belirtilen sayıda karakter içeren alt dize<старт> Orta("12345678", 4.3) = "456"
    Orta(<строка>, <старт>) Konumdan alt dize seç<старт>satırın sonuna kadar Orta("12345678", 4) = "45678"
    LTrim (<строка>) Bir dizenin başındaki boşlukları kaldırır LTrim("yazdır") ="yazdır"
    RTrim(<строка>) Bir dizenin sonundaki boşlukları kaldırır RTrim("yazdır ") ="yazdır"
    kırpmak (<строка>) Bir dizenin başındaki ve sonundaki boşlukları kaldırır Kırp("yazdır") ="yazdır"
    Giriş([<старт>, ] < строка1>, <строка2> [, <сравнение>]) Bir dizede bir alt dize arar. Bir dizenin ilk geçtiği konumu döndürür<строка2>bir dizeye<строка1>, <старт>— aramanın başladığı konum. Bu bağımsız değişken atlanırsa, arama dizenin başından başlar Instr("C:Temp test.mdb", "Test")=9 Arama dizisi belirtilen dizide değilse işlev 0 döndürür
    InStrRev([<старт>, ] <строка1>, <строка2> [, <сравнение>]) Bir dizede bir alt dize arar, ancak dizenin sonundan başlar ve alt dizenin son geçtiği konumu döndürür. İsteğe bağlı bağımsız değişken<сравнение>iki dizi arasındaki karşılaştırma türünü tanımlar
    Yer değiştirmek(<строка>, <строкаПоиск>, <строкаЗамена>) Bir dizede bir alt dizeyi diğeriyle değiştirmenize izin verir. Bu işlev, bağımsız değişkenin tüm oluşumlarını arar.<строкаПоиск>tartışmada<строка>ve onları ile değiştirir<строкаЗамена>

    Dize değerlerini karşılaştırmak için, karakterleri karşılaştırırken ikili kodları karşılaştırıldığından, sayısal değerler için olağan karşılaştırma işleçlerini kullanabilirsiniz. Dize değerlerini karşılaştırmak için, tam olmayan bir eşleşmeyi tespit etmenize izin veren Like operatörü de kullanılır, örneğin, "Giriş sinyali" ifadesi "Giriş *" gibi Doğru olacaktır, çünkü karşılaştırılan dize "Giriş" kelimesiyle başlar. . Bir dizedeki yıldız karakteri (*), rastgele sayıda karakterin yerine geçer. Karşılaştırılan dizede Like operatörü tarafından işlenen diğer karakterler:

    • ? – herhangi bir karakter (bir);
    • # - bir basamak (0-9);
    • [<список>], listedeki karakterlerden biriyle eşleşen bir karakterdir;
    • [!<список>], listedeki hiçbir karakterle eşleşmeyen bir karakterdir.
    • ASC() - bu işlev, iletilen karakter için sayısal kodu döndürmenizi sağlar. Örneğin, ASC("D") 68'i döndürür. Bu işlev, sonraki veya önceki harfi belirlemek için kullanışlıdır. Genellikle işlevle birlikte kullanılır. Chr(), ters işlemi gerçekleştirir - sayısal koduna göre bir karakter döndürür. Bu işlevin varyantları - AscB() Ve AscW():
      • AscB() - karakterin sayısal kodunun yalnızca ilk baytını döndürür.
      • AscW() - bir Unicode karakterin kodunu döndürür
    • Chr() - sayısal koduna göre bir karakter döndürür. Asc() işleviyle birlikte kullanılabilir, ancak çoğunlukla bir hizmet karakterinin çıktısını almanız gerektiğinde kullanılır. (örneğin tırnak işaretleri - "), Çünkü alıntılar sadece VBA koduna girmeyin (çift koymanız gerekir). Genelde bu özelliği kullanırım.

      Kılıcı Dize Olarak Kısın kılıç = Chr(34) & "Alıntılanan Kelime" & Chr(34)

      Bu işlevin varyantları vardır - CrB() Ve ChrW(). İşlev için aynı seçeneklere benzer şekilde çalışırlar. artan().

    • InStr() Ve InStrRev() en popüler özelliklerden biridir. Bir dize değişkeninin gövdesinde bir karakter veya karakter dizisi bulmanızı ve konumlarını döndürmenizi sağlar. Dizi bulunamazsa, 0 döndürülür.

      Dim sStr As String sStr = "w" If InStr(1, "Merhaba, Dünya!", sStr, vbTextCompare) > 0 MsgBox "Arama kelimesi var!" Else MsgBox "Aradığınız kelime eksik!" eğer biterse

      İşlevler arasındaki fark, InStr() öğesinin belirtilen kelimeyi dizenin başından ve InStrRev() öğesinin dizenin sonunda aramasıdır.

    • Sol() , Sağ() , Orta() - Sırasıyla solda, sağda veya ortada mevcut bir string değişkeninden belirttiğiniz karakter sayısını alabilme.

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBoxMid(sStr, 1, 5)

    • Len() - bir dizideki karakter sayısını alma yeteneği. Genellikle döngüler, değiştirme işlemleri ve benzerleriyle kullanılır.
    • LCase() Ve UCase() - dizeyi sırasıyla küçük ve büyük harflere dönüştürün. Karşılaştırma büyük/küçük harfe duyarlı olmadığında genellikle karşılaştırma için bir değer hazırlamak için kullanılır (soyadları, firma adları, şehirler vb.).
    • LSet() Ve RSet() - uzunluğunu değiştirmeden bir değişkeni diğerinin sembolleriyle doldurma yeteneği (sırasıyla sol ve sağ). Fazladan karakterler kesilir, eksik olanların yerine boşluklar konur.
    • LTrim() , RTrim() , kırpmak() - sırasıyla soldaki, sağdaki veya hem soldaki hem de sağdaki boşlukları kaldırma yeteneği.
    • Yer değiştirmek() - bir dizgedeki bir karakter dizisini diğeriyle değiştirme yeteneği.

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox Değiştir(sStr, "Merhaba", "Bay")

    • Uzay() - belirttiğiniz boşluk sayısından bir dizi alın;
      Benzer bir diğer özellik ise Uzm() , konsol çıktısını biçimlendirmek için kullanılır. Komut satırının genişliğine göre boşlukları çoğaltır.
    • StrComp() - İki diziyi karşılaştırabilme.
    • StrConv() - bir dize dönüştürme yeteneği (Unicode'a ve Unicode'dan, büyük ve küçük harfe, kelimelerin ilk harfini büyük yapmak için vb.):

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox StrConv("Merhaba Dünya!", vbUpperCase)

      Sabitler, parametrenin ikinci parametresi olarak kullanılabilir:

        • vbUpperCase: Tüm metin karakterlerini BÜYÜK HARF'e dönüştürür
        • vbLowerCase: Tüm metin karakterlerini küçük harfe dönüştürür
        • vbProperCase: Her kelimenin ilk karakterini büyük harfe dönüştürür
        • *vbWide: Bir dizenin karakterlerini tek bayttan çift bayta dönüştürür
        • *vbNarrow: Bir dizenin karakterlerini çift bayttan tek bayta dönüştürür
        • **vbKatakana: Hiragana karakterlerini Katakana karakterlerine dönüştürür
        • **vb Hiragana: Katakana karakterlerini Hiragana karakterlerine dönüştürür
        • ***vb Unicode: Sistemin varsayılan kod sayfasını kullanarak bir dizeyi Unicode'a dönüştürür
        • ***vbUnicode'dan: Bir dizeyi Unicode'dan sistem varsayılan kod sayfasına dönüştürür

      * Uzak Doğu yerelleştirmeleri için geçerlidir
      ** yalnızca Japonya için geçerlidir
      *** Macintosh işletim sistemlerinde desteklenmez

    • StrTers() - karakterlerini ters sırayla yerleştirerek dizeyi "tersine çevirin". İşlev yalnızca Excel 2000 ve üzeri sürümlerden başlayarak çalışır. Bir kelimeyi çevirmek için diğer yöntemlerin yanı sıra işlevi kullanmanın bir örneği bu makalede bulunabilir: Bir kelime nasıl çevrilir?
    • Sekme() konsol çıktısını biçimlendirmek için kullanılan başka bir işlevdir. Sekme karakterlerini belirttiğiniz kadar çoğaltır. Herhangi bir sayı belirtilmezse, basitçe bir sekme karakteri ekler. Bir dizi değerine sekme karakteri eklemek için sabiti de kullanabilirsiniz. vbTab.
    • Sicim() - belirtilen sayıda karakterden bir dizi almanızı sağlar (yine sizin tarafınızdan belirtilir). Genellikle çıktıyı işlevle birlikte biçimlendirmek için kullanılır Len().

    Aşağıdaki üç işlev, bir dizi diziyle çalışmanıza izin verir

    Bölmek (<строка> [, <разделитель>]) - Bir diziyi bir alt dizi dizisine dönüştürür. Varsayılan ayırıcı bir boşluktur. Bu işlev, cümleleri kelimelere bölmek için kullanışlıdır. Ancak, bu işlevde başka herhangi bir sınırlayıcı belirtebilirsiniz. Örneğin, Split(3, "Bu bir test teklifidir"), üç dize değerinden oluşan bir dizi döndürür: "Bu", "deneme", "teklif". Katılmak(<массивСтрок> [, <разделитель>]) - bir dizge dizisini belirtilen sınırlayıcı ile tek bir dizgiye dönüştürür. filtre(<массивСтрок>, <строкаПоиск>[, <включение>] [, <сравнение>]) - bir dizi dize değeri boyunca yinelenir ve içinde verilen dizeyle eşleşen tüm alt dizeleri arar. Bu işlevin dört argümanı vardır:<строкаПоиск>- Arama dizisi;<включение>– döndürülen dizgilerin aranan alt dizgiyi içerip içermeyeceğini veya tersine yalnızca aranan dizgiyi bir alt dizgi olarak içermeyen dizi dizgilerinin döndürüleceğini gösteren bir parametre (Boolean değeri);<сравнение>– dizi karşılaştırma yöntemini tanımlayan bir parametre. Üç işlev daha dize dönüştürme sağlar: LCase(<строка>) - dizenin tüm karakterlerini küçük harfe dönüştürür, örneğin, LCase("MAIL") işlevi "mail" dizesini döndürür; UCase(<строка>) - dizenin tüm karakterlerini büyük harfe dönüştürür; StrConv(<строка>, <преобразование>) - ikinci parametreye bağlı olarak çeşitli türlerde dize dönüştürmeleri gerçekleştirir. Bu parametre yerleşik sabitlerle tanımlanır, örneğin StrConv("Poccia", VbProperCase) işlevi "Russia" değerini döndürür.

    Ve son iki fonksiyon karakter dizileri üretir.

    Uzay(<число>) - belirtilen sayıda boşluktan oluşan bir dizi oluşturur; Sicim(<число>, <символ>) - ilk bağımsız değişkende belirtilen karakter sayısından oluşan bir dizi oluşturur. Sembolün kendisi ikinci bağımsız değişkende belirtilir.

    Örnek

    Dize değişkenleriyle çalışan bir program yazın. Bunu yapmak için, etiketleri aşağıdaki mesajları içeren bir form oluşturun: 1 etiket: ilk metin alanına (1 satır) girilen dizenin uzunluğu rapor edilir; 2 etiketi: üçüncü metin alanındaki (3. satır) tüm karakterleri büyük harflere dönüştürür; 3 etiket: birinci ve ikinci metin alanlarının (satır 1 ve 2) içeriğini birlikte yazdırır.

    Yürütme teknolojisi

    • Word uygulamasını açın, belgeyi kaydedin ve VBA düzenleyicisine geçin.
    • Şekilde gösterildiği gibi bir form oluşturun.
    • Tamam düğmesi için bir olay işleyici yazın.
    • Programı derleyin.
    • Yürütme için formu çalıştırın.

    Private Sub CommandButton1_Click() Dim a String Olarak Dim b String Olarak Dim c String Olarak Dim k String Olarak Dim d String Olarak Dim n Tamsayı Olarak a=TextBox1.Text n=Len(a) Label7.Caption="ilk uzunluğu satır" & n & "karakterler" c=TextBox3.Text k=Ucase(c) Label8.Caption=k b=TextBox2.Text d=a + » » + b Label9.Caption=d End Sub

    Görev

    A1 hücresindeki Excel'in A2 sütununda virgülle ayrılmış kelimeleri araması ve sonuç ile bulunan kelimelerin aranan metindeki tekrar sayısı (mümkünse) ile birlikte başka bir üçüncüye yazılması gerekir. hücre. (ilk hücrede bir şekilde vurgulanırlarsa (iyi veya altı çizilirse) daha da iyi olur ... böylece hemen görünür olurlar. Kelimeleri bir diziye şu şekilde yönlendirirsiniz:

    Visual Basic kodu
    1 2 3 4 5 6 Dim m() As String If InStr(1, Cells(1, 2).Value, ",") > 0 ise m = Split(Replace(Cells(1, 2).Value, " ", ""), " ,") Else ReDim m(0): m(0) = Kırp(Hücreler(1, 2).Değer) End If

    Ve sonra aradığınız tüm kelimeler için döngüde (yine döngüde. iç içe) 23 dakika sonra eklendi

    Visual Basic kodu
    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 Seçenek Karşılaştırma Metni Seçenek Açık Alt QWERT() Dim R, N, K Dim m() As String If InStr(1, Cells(1, 2).Value, ",") > 0 Sonra m = Böl(Replace(Cells( 1, 2).Değer, " ", ""), ",") Else ReDim m(0): m(0) = Kırp(Hücreler(1, 2).Değer) Son If For R = 0 To UBound( m) N = 1 InStr(1, Cells(1, 1).Value, m(R)) > 0 ise K = InStr(N, Cells(1, 1).Value, m(R)) Do COLOR K , Len(m(R)) N = K + Len(m(R)) K = InStr(N, Cells(1, 1).Value, m(R)) K > 0 iken Döngü Sonraki R ise Bitir Alt Alt RENK(ST, LN) Hücreli(1, 1).Karakterler(Başlangıç:=ST, Uzunluk:=LN).Font .Color = RGB(0, 0, 255) .Bold = True End With End Sub

    15 dakika sonra eklendi Ve bu şekilde kelimenin başında arama yapacak ve kelimenin tamamını seçecektir.

    Visual Basic kodu
    1 2 3 4 5 6 7 8 9 10 11 Alt RENK(ST, LN) LN = LN - 1 Do LN = LN + 1 Döngü iken VBA.Orta(Hücreler(1, 1).Değer, ST + LN, 1)<>" " With Cells(1, 1).Characters(Start:=ST, Length:=LN).Font .Color = RGB(0, 0, 255) .Bold = True End With End Sub

    Aradığın şeyi kelimenin başından değil, kelimenin bir kısmından yapabilirsin. - başka bir Do-Loop ekleyin. Yalnızca başlangıcı (ST) bir boşluk kalana kadar sola kaydırın (http://www.cyberforum.ru/vba/thread567588.html)

    Nasıl Yapılır: Bir Dizeyi Bir Kalıpla Eşleştirme (Visual Basic)

    Uygunluk kontrolü dizeden şablona Dize Veri Türü (Visual Basic) - Benzer işleç (Visual Basic) . Like operatörünün sol işleneni bir dize ifadesidir ve sağ işlenen bir şablon dizesidir Like, Boolean türünde bir değer döndürür

    Sembol kontrolü

    ? - herhangi bir karakter

    • myString, herhangi bir 2 karakterin takip ettiği bir W karakterinden oluşur

      sMatch'i Boolean = myString Olarak "W??"

    Listeden ve aralıktan herhangi bir karakter

    Herhangi bir karakter ve ardından A, C veya E karakterlerinden biri

      sMatch'i Boolean Olarak Kısın = myString "?" Gibi harfe duyarlı

    • myString = karakter sayısı ve ardından şu aralıktan bir karakter: i, j, k, l, m veya n:

      sMatch'i Boolean Olarak Kısın = myString "num" Gibi harfe duyarlı

    Like, sıfır uzunluklu bir dize dizisi dizesi ("") ile olduğu gibi çalışır. bir dizenin boş olup olmadığını kontrol etmenizi sağlar

    Listeden karakter veya bir karakterin olmaması

    1. Like operatörü iki kez kullanılır ve sonuçlar Or Operator (Visual Basic) veya OrElse Operator (Visual Basic) kullanılarak birleştirilir.
    2. İlk ifade şablonunda, köşeli parantez () içinde bir karakter listesi ekleyin.
    3. İkinci ifade şablonunda, testin yerine hiçbir şey koymayın Örnek: Tam olarak üç basamak içermesi ve ardından bir boşluk, kısa çizgi, nokta veya karakter içermemesi gereken yedi basamaklı telefon numarası phoneNum'u test etme , ve ardından dört basamak. (ilk üç basamak son dörtten ayrılmayabilir - "karakter yok") Null , bir hata oluşur. Bir argüman verilirse karşılaştırma_türü , argüman başlangıç ​​konumu zorunludur. satır 1 Gerekli. dize ifadesi Aranacak olan. hat 2 Gerekli. İstenen dize ifadesi. karşılaştırma_türü İsteğe bağlı. türü belirtir dize karşılaştırmaları. Argümanın değeri ise karşılaştırma_türü Null, bir hata oluşur. eğer argüman karşılaştırma_türü atlandı, parametre tarafından tanımlanan karşılaştırma türü Anlam evlenmekBulvar. Dil ayarlarında belirtilen karşılaştırma kurallarını kullanmak için geçerli bir LCID (LocaleID) parametresi belirtin.

      Seçenekler

      Argüman karşılaştırma_türü aşağıdaki seçenekleri kullanır:

      Dönüş Değerleri

      Notlar

      İşlev InStrB bir dizede bulunan bayt verileriyle kullanılır. İşlev InStrB bir dizenin diğerinin içinde ilk geçtiği yerin karakter konumunu değil, bayt konumunu döndürür.

      örnekler

      InStr işlevini bir ifadede kullanmaİfadeleri her kullandığınızda, işlevi kullanabilirsiniz InStr. Örneğin, ilk noktanın konumunu belirlemek istiyorsanız ( . ) IP adresini içeren alanda ("IPAddress" olarak adlandırılır), işlevi kullanabilirsiniz InStr aramak için:

      InStr(1,,"."")

      İşlev InStr"IPAdresi" alanındaki her bir değere bakar ve ilk noktanın konumunu döndürür. Bu nedenle, IP adresinin ilk sekizlisinin değeri 10. , işlev 3 değerini döndürür.

      Fonksiyonun sonucunu kullanan diğer fonksiyonları kullanabilirsiniz. InStr, ilk noktadan önce gelen IP adresi sekizlisinin değerini çıkarmak için, örneğin:

      Sol(,(InStr(1,."")-1))

      Bu örnekte, işlev InStr(1,,"."") ilk noktanın konumunu döndürür. 1'i çıkarmanın sonucu, ilk noktadan önceki karakter sayısıdır, bu durumda - 2'dir. Ardından işlev Sol"IPAddress" alanının sol tarafındaki bu karakterleri ayıklayarak 10 değerini döndürür.

      fonksiyon kullanımı InStr Visual Basic for Applications (VBA) kodunda

      NOT. Aşağıdaki örnekler, bir Visual Basic for Applications (VBA) modülünün yeteneklerinin nasıl kullanılacağını göstermektedir. VBA ile çalışma hakkında daha fazla bilgi için, seçin Geliştirici kılavuzu düğmenin yanındaki açılır menüde Aramak ve ardından arama kutusuna bir veya daha fazla anahtar sözcük girin.

      Bu örnekte, fonksiyon InStr bir dizgenin diğerinin içindeki ilk geçtiği konumu elde etmek için kullanılır.

      SearchString, SearchChar, MyPos SearchString ="XXpXXpXXPXXP" " Aranacak dize. SearchChar = "P" " "P" için arama yapın. " 4 konumundan başlayan bir metinsel karşılaştırma. 6 döndürür. MyPos = Öğr( 4, Arama dizisi , arama karakteri , 1) " 1 konumunda başlayan bir ikili karşılaştırma. 9 döndürür. MyPos = Öğr( 1, Arama dizisi , arama karakteri , 0) " Karşılaştırma varsayılan olarak ikilidir " (son bağımsız değişken atlanmıştır). MyPos= Öğr( Arama dizisi , arama karakteri ) 9 adet iade eder. MyPos = Öğr( 1, Arama dizisi , "K" ) 0 döndürür.

    Yeni başlayanlar için Pascal derslerimize devam ediyoruz. Son derste tartıştık ama orada karakterlerden bahsetmiştik, bu yüzden veri tipini derinlemesine incelemeden önce, Char tipini öğreneceğiz. Karakter veri türü Char değerleri tek karakter olan bir veri tipidir. Bu tür yalnızca bir herhangi bir karakter içerebilir (Örneğin: "*", "/", ".", "!" ve diğerleri). Bu tür karakterlerin her biri 8 bit bellek kaplar, toplamda 256 sekiz bitlik karakter vardır. Char karakter türü tarafından kullanılan tüm karakterler, ASCII (Bilgi Alışverişi için Amerikan Standart Kodu) karakter tablosunda veya Bilgi Alışverişi için Amerikan Standart Kodunda yazılır.

    Karakter sabitleri ".", "*", "7", "s" gibi kesme işaretleri içine alınır. Ayrıca, bir sembol kullanılarak yazılabilen bir karakter sabiti - "kafes", örneğin # 185 - ASCII tablosundan 185 numaralı karakteri gösterecektir (bu "#" karakteridir).

    Karakter tipine uygulanabilen 5 fonksiyon vardır: Ord, Chr, Pred, Succ ve Upcase.

    Ord işlevi, bir karakteri sayısal koduna dönüştürür. ASCII tabloları. Örneğin, "#" karakteri için 185 değerini döndürür. Chr işlevi, Ord işlevinin tersidir. Chr işlevi, sayısal karakter kodunu karakterin kendisine dönüştürür, örneğin, 64 sayısal kodunu alırsanız, Chr (64) işlevi "@" karakterini döndürür.

    Ord işlevini kullanan bir Pascal programı örneği:


    Başla //Program başlangıcı

    writeln(sıra(x)); //ASCII tablosunda sayıyı göster
    son. // programın sonu

    Chr işlevini kullanan bir Pascal programı örneği:

    varx: tamsayı; // Değişkenlerin açıklaması (x - tamsayı türü)
    Başla //Program başlangıcı
    readln(x); //bir değişkeni okumak
    writeln(chr(x)); //ASCII tablosunda karakterleri sayıya göre göster
    son. // programın sonu

    Pred işlevi ASCII tablosundan bir önceki karakterin değerini döndürür, örneğin "P" karakteri için (Pred(P)) bu işlev "O" karakterini döndürür. Succ işlevi, Pred işlevinin tersidir. "P" karakteri için Succ(P) işlevi, yukarıdaki ASCII tablosundan bir sonraki karakter olan "Q" karakterini döndürür.

    Pred ve Succ işlevlerini kullanan bir Pascal programı örneği:

    varx:karakter; // Değişkenlerin açıklaması (x - karakter tipi)
    Başla //Program başlangıcı
    readln(x); //bir değişkeni okumak
    writeln(pred(x)); //ASCII tablosundaki önceki karakterin çıktısını alın
    writeln(suc(x)); //ASCII tablosundaki sonraki karakteri yazdır
    son. // programın sonu

    UpCase işlevi yalnızca küçük İngilizce harfler için geçerlidir. Bu işlev, küçük İngilizce harfleri büyük harfe dönüştürür.

    UpCase işlevini kullanan bir Pascal programı örneği:

    Dersin eki - ASCII karakter tabloları:

    Bugünlük ders bitti. bunu hatırla pascal programlama basittir ve birçok programlama dilinin temelidir.

    • ASC () - bu işlev, iletilen karakter için sayısal kodu döndürmenizi sağlar. Örneğin, ASC("D") 68'i döndürür. Bu işlev, sonraki veya önceki harfi belirlemek için kullanışlıdır. Genellikle işlevle birlikte kullanılır. Chr(), ters işlemi gerçekleştirir - sayısal koduna göre bir karakter döndürür. Bu işlevin varyantları - AscB() Ve AscW():
      • AscB () - karakterin sayısal kodunun yalnızca ilk baytını döndürür.
      • AscW () - bir Unicode karakterin kodunu döndürür
    • Chr () - sayısal koduna göre bir karakter döndürür. Asc() işleviyle birlikte kullanılabilir, ancak çoğunlukla bir hizmet karakterinin çıktısını almanız gerektiğinde kullanılır. (örneğin tırnak işaretleri - "), Çünkü alıntılar sadece VBA koduna girmeyin (çift koymanız gerekir). Genelde bu özelliği kullanırım.

      Kılıcı Dize Olarak Kısın kılıç = Chr(34) & "Alıntılanan Kelime" & Chr(34)

      Bu işlevin varyantları vardır - CrB() Ve ChrW(). İşlev için aynı seçeneklere benzer şekilde çalışırlar. artan().

    • InStr () Ve InStrRev () en popüler özelliklerden biridir. Bir dize değişkeninin gövdesinde bir karakter veya karakter dizisi bulmanızı ve konumlarını döndürmenizi sağlar. Dizi bulunamazsa, 0 döndürülür.

      Dim sStr As String sStr = "w" If InStr(1, "Merhaba, Dünya!", sStr, vbTextCompare) > 0 MsgBox "Arama kelimesi var!" Else MsgBox "Aradığınız kelime eksik!" eğer biterse

      İşlevler arasındaki fark, InStr() öğesinin belirtilen kelimeyi dizenin başından ve InStrRev() öğesinin dizenin sonunda aramasıdır.

    • Sol () , Sağ () , Orta () - Sırasıyla solda, sağda veya ortada mevcut bir string değişkeninden belirttiğiniz karakter sayısını alabilme.
      Dim sStr As String sStr = "Merhaba Dünya!" MsgBoxMid(sStr, 1, 5)

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBoxMid(sStr, 1, 5)

    • Len () - bir dizideki karakter sayısını alma yeteneği. Genellikle döngüler, değiştirme işlemleri ve benzerleriyle kullanılır.
    • LCase () Ve UCase () - dizeyi sırasıyla küçük ve büyük harflere dönüştürün. Karşılaştırma büyük/küçük harfe duyarlı olmadığında genellikle karşılaştırma için bir değer hazırlamak için kullanılır (soyadları, firma adları, şehirler vb.).
    • LSet () Ve RSet () - uzunluğunu değiştirmeden bir değişkeni diğerinin sembolleriyle doldurma yeteneği (sırasıyla sol ve sağ). Fazladan karakterler kesilir, eksik olanların yerine boşluklar konur.
    • LTrim () , RTrim () , kırpmak () - sırasıyla soldaki, sağdaki veya hem soldaki hem de sağdaki boşlukları kaldırma yeteneği.
    • Yer değiştirmek () - bir dizgedeki bir karakter dizisini diğeriyle değiştirme yeteneği.
      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox Değiştir(sStr, "Merhaba" , "Bay")

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox Değiştir(sStr, "Merhaba", "Bay")

    • Uzay () - belirttiğiniz boşluk sayısından bir dizi alın;
      Benzer bir diğer özellik ise Uzm () , konsol çıktısını biçimlendirmek için kullanılır. Komut satırının genişliğine göre boşlukları çoğaltır.
    • StrComp () - İki diziyi karşılaştırabilme.
    • StrConv () - bir dize dönüştürme yeteneği (Unicode'a ve Unicode'dan, büyük ve küçük harfe, kelimelerin ilk harfini büyük yapmak için vb.):
      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox StrConv("Merhaba Dünya!" , vbUpperCase)

      Dim sStr As String sStr = "Merhaba Dünya!" MsgBox StrConv("Merhaba Dünya!", vbUpperCase)

      Sabitler, parametrenin ikinci parametresi olarak kullanılabilir:

      • vbUpperCase: Tüm metin karakterlerini BÜYÜK HARF'e dönüştürür
      • vbLowerCase: Tüm metin karakterlerini küçük harfe dönüştürür
      • vbProperCase: Her kelimenin ilk karakterini büyük harfe dönüştürür
      • *vbWide: Bir dizenin karakterlerini tek bayttan çift bayta dönüştürür
      • *vbNarrow: Bir dizenin karakterlerini çift bayttan tek bayta dönüştürür
      • **vbKatakana: Hiragana karakterlerini Katakana karakterlerine dönüştürür
      • **vb Hiragana: Katakana karakterlerini Hiragana karakterlerine dönüştürür
      • ***vb Unicode: Sistemin varsayılan kod sayfasını kullanarak bir dizeyi Unicode'a dönüştürür
      • ***vbUnicode'dan: Bir dizeyi Unicode'dan sistem varsayılan kod sayfasına dönüştürür
      • * Uzak Doğu yerelleştirmesi için geçerlidir
        ** yalnızca Japonya için geçerlidir
        *** Macintosh işletim sistemlerinde desteklenmez

    • StrTers () - karakterlerini ters sırayla yerleştirerek dizeyi "tersine çevirin". İşlev yalnızca Excel 2000 ve üzeri sürümlerden başlayarak çalışır. Bir kelimeyi çevirmek için diğer yöntemlerin yanı sıra işlevi kullanmanın bir örneği bu makalede bulunabilir: Bir kelime nasıl çevrilir?
    • Sekme () konsol çıktısını biçimlendirmek için kullanılan başka bir işlevdir. Sekme karakterlerini belirttiğiniz kadar çoğaltır. Herhangi bir sayı belirtilmezse, basitçe bir sekme karakteri ekler. Bir dizi değerine sekme karakteri eklemek için sabiti de kullanabilirsiniz. vbTab.
    • Sicim () - belirtilen sayıda karakterden bir dizi almanızı sağlar (yine sizin tarafınızdan belirtilir). Genellikle çıktıyı işlevle birlikte biçimlendirmek için kullanılır Len().
    Chr

    Chr işlevi

    Chr(CharCode)
    Chr$(CharCode)
    ChrB(CharCode)
    ChrW(CharCode)

    İşlev Chr(Ch arakte R), ANSI veya Unicode sayısal kodunun değerine göre bir karakter almanızı sağlar

    Geri dönüş değeri

    Fonksiyonlar Chr, CrB, ChrW belirtilen ANSI veya Unicode karakter koduna karşılık gelen karakteri içeren Variant türünde bir String alt türü değeri döndürür. Fonksiyonlar Chr$, ChrB$, ChrW$ sırasıyla String türünde bir değer döndürür

    Not

    Chr Ve Chr$ ANSI kodlamasına göre bir karakter döndürür
    CrB Ve ChrB$ geri dönmek bir bayt sicim
    ChrW bir Unicode karakteri döndürür, ancak Unicode olmayan sistemlerde aynı şekilde davranır Chr
    parametrede kullanın Karakter Kodu 255'ten büyük değerler çalışma zamanı hataları oluşturur 5: Geçersiz prosedür çağrısı veya argümanı veya 6: Taşma

    Seçenekler CharCode Gerekli bağımsız değişken, karakteri belirten bir Long'dur. Genellikle, fonksiyon Chr metin dizilerine yazdırılamayan karakterler eklenirken kullanılır (satır başı, satır besleme, sekme vb.). 0-31 arasındaki kodlar, standart ASCII kontrol karakterlerine karşılık gelir. Örneğin, Chr(10) yeni satır karakterini döndürür Örnek Dim reval reval = Chr(65) Debug.Print reval ", A değerini döndürür Kategori