Excelin sarakenumeroiden muuntaminen aakkosiksi

Huomautus

Office 365 ProPlus nimetään uudelleen Microsoft 365 Apps for enterprise -sovellukseksi. Lisätietoja tästä muutoksesta on tässä blogikirjoituksessa.

Johdanto

Tässä artikkelissa käsitellään Microsoft Excelin Microsoft Visual Basic for Applications (VBA) -funktion käyttöä, kun sarakenumerot muunnetaan saman sarakkeen vastaaviksi aakkosiksi merkistöiksi.

Esimerkiksi sarakenumero 30 muunnetaan vastaaviksi aakkosiksi AD.

Lisätietoja

Microsoft esittää ohjelmointiesimerkkejä vain asian havainnollistamiseksi, ilman suoraa tai epäsuoraa vastuuta niiden toimivuudesta. Tämä sisältää muunmuassa epäsuorat vastuut soveltuvuudesta kaupankäyntiin tai soveltuvuuteen yksilöityyn käyttöön. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen, sekä proseduurien luonti- ja virheenkorjaustyökaluihin. Microsoftin tukihenkilöt voivat auttaa selvittämään tietyn proseduurin toiminnallisuutta, mutta he eivät muokkaa näitä esimerkkejä parantamaan yksittäisen tarpeen toiminnallisuutta eivätkä luo siihen proseduureja.

ConvertToLetter-funktio toimii seuraavan algoritmin avulla:

  1. Anna iCol sarakkeen numero. Lopeta, iCol jos on pienempi kuin 1.
  2. Laske osamäärä ja jakolasku ja (iCol - 1) jakolasku 26:lla ja tallenna arvot muuttujiin a ja b .
  3. Muunna kokonaislukuarvo vastaavaksi aakkose mukaiseksi merkistöksi b (0 => A, 25 => Z) ja lisää se tulosmerkkijonon eteen.
  4. Määritä iCol jakaja ja a silmukka.

Esimerkki: Sarakkeen numero on 30.

  • (Silmukka 1, vaihe 1) Sarakkeen numero on vähintään 1, jatka.

  • (Silmukka 1, vaihe 2) Sarakenumero, joka on pienempi, jaetaan 26:lla:

    29 / 26 = 1 jako 3. a = 1, b = 3

  • (Silmukka 1, vaihe 3) Tack on (b+1) the letter of the alphabet:

    3 + 1 = 4, neljäs kirjain on "D". Result = "D"

  • (Silmukka 1, vaihe 4) Siirry takaisin vaiheeseen 1 , jossa iCol = a

    iCol = 1

  • (Silmukka 2, vaihe 1) Sarakkeen numero on vähintään 1, jatka.

  • (Silmukka 2, vaihe 2) Sarakenumero, joka on pienempi, jaetaan 26:lla:

    0 / 26 = 0 jako jäljellä 0. a = 0, b = 0

  • (Silmukka 2, vaihe 3) Tack on b+1 the letter of the alphabet:

    0 + 1 = 1, ensimmäinen kirjain on "A" Tulos = "AD"

  • (Silmukka 2, vaihe 4) Siirry takaisin vaiheeseen 1 , jossa iCol = a

    iCol = 0

  • (Silmukka 3, vaihe 1) Sarakkeen numero on pienempi kuin 1, loppu.

Seuraava VBA-funktio on vain yksi tapa muuntaa sarakenumeron arvot vastaaviksi aakkoseiksi:

Function ConvertToLetter(iCol As Long) As String
   Dim a As Long
   Dim b As Long
   a = iCol
   ConvertToLetter = ""
   Do While iCol > 0
      a = Int((iCol - 1) / 26)
      b = (iCol - 1) Mod 26
      ConvertToLetter = Chr(b + 65) & ConvertToLetter
      iCol = a
   Loop
End Function

Huomautus Tämä funktio muuntaa vain siihen välitetyt kokonaisluvut vastaavaksi aakkosnumeerinen tekstimerkkiksi. Se ei muuta sarakkeen tai riviotsikoiden ulkoasua fyysisessä laskentataulukossa.