Moi,
Kun ajan tämän VBA:ssa, sarakkeen leveys muuttuu kuten pitääkin:
Sub TestSub() Worksheets("Sheet2").Range("D5").ColumnWidth = 20 End Sub
Mutta jos lyön tämän funktion soluun, ei sarakkeen leveys muutu:
Function TestFunction() Worksheets("Sheet2").Range("D5").ColumnWidth = 20 TestFunction = 1234 End Function
Eikä myöskään tällä:
Function TestFunction() Call TestSub TestFunction = 1234 End Function
Missä menen metsään? Miten saan muutettua sarakkeen leveyttä funktiolla?
ari kood kirjoitti:
Missä menen metsään?
Siinä, että yrität muokata taulukkoa funktiolla.
ari kood kirjoitti:
Miten saan muutettua sarakkeen leveyttä funktiolla?
Et mitenkään
Microsoft kirjoitti:
The purpose of user-defined functions is to allow the user to create a custom function that is not included in the functions that ship with Microsoft Excel. The functions included in Microsoft Excel also cannot change the environment. Functions can perform a calculation that returns either a value or text to the cell that they are entered in. Any environmental changes should be made through the use of a Visual Basic subroutine.
Ok, kiitos tiedosta!
Funktioni palauttaa soluun erimittaisia merkkijonoja jotka on rivitetty samaan soluun omille riveilleen.
Function XYZ() as string dim A(2) as string A(0) = "K-Market Karvia" A(1) = "S-Market Liminka" A(2) = "Parkanon Liha ja Läski" ' dim result as string ' ' result = join(A,vbCrLf) XYZ = result End Function
Miten saan säädettyä kyseisen sarakkeen leveyden merkkijonoille sopivaksi... siis tarvittavan leveyden saan kyllä itsekin jotenkin jostain, mutta se leveyden asettaminen?
ari kood kirjoitti:
Miten saan säädettyä kyseisen sarakkeen leveyden merkkijonoille sopivaksi...
No vaikka sarake C:
Columns("C:C").EntireColumn.AutoFit
Ei tosin toimi, jos sarakkeessa olevat tekstit on määritelty rivittymään.
Okei, laitan tuon napin taakse.
Toi autofit muuten toimii ihan vakiona ilman nappejakin, kun vaan tuplaklikkaa ko. sarakkeen otsikon oikeaa reunaa.
Ei ehkä tän tapausken suhteen ole relevantti, mutta yleisenä Excelin käyttövinkkinä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.