Teksto ng VBA | Paano gamitin ang Text Function sa VBA Excel? (na may mga Halimbawa)

Ang teksto ay isang pag-andar ng worksheet sa excel ngunit maaari rin itong magamit sa VBA habang ginagamit ang saklaw na pag-aari, ang pagpapaandar para sa pagpapaandar na ito ay katulad ng pagpapaandar ng worksheet at tumatagal ito ng parehong bilang ng mga argumento na kung saan ay ang mga halagang dapat na maging na-convert at isang tinukoy na format ng numero.

Pag-andar ng Teksto sa Excel VBA

Ang TEXT ay ang pagpapaandar na magagamit sa worksheet ngunit sa kasamaang palad, hindi ito isang built-in na pag-andar sa Excel VBA. Upang ma-access ang pagpapaandar na ito, kailangan naming gamitin ang object ng klase ng function ng worksheet sa VBA. Ang pagpapaandar ng teksto sa Excel ay nagko-convert ng isang halaga sa isang tinukoy na format ng numero.

Ang isa sa mga problema sa pagpapaandar na ito ay ang mga argumento. Kailan man gagamit kami ng klase ng pagpapaandar ng worksheet ng VBA hindi namin makikita ang malinaw na cut syntax tulad ng aming worksheet. Sinasabi lamang nito ang "Arg1" at "Arg2".

  • Arg1 ay ang halagang kailangan nating ilapat ang pag-format.
  • Arg2 ay ang pag-format na kailangan nating ilapat at kailangan nating tukuyin ang code ng pag-format.

Mga halimbawa ng VBA Text Function sa Excel

Nasa ibaba ang mga halimbawa ng Excel VBA Text Function.

Maaari mong i-download ang VBA Text Excel Template na ito dito - VBA Text Excel Template

Halimbawa # 1

Hayaan mo akong ipakita sa iyo ang isang simpleng halimbawa ng TEXT sa VBA Excel. Tingnan ang code sa ibaba sa Visual Basic.

Code:

 Sub Text_Example1 () Dim FormattingValue Bilang String Dim FormattingResult Bilang String FormattingValue = 0.564 FormattingResult = WorksheetFunction.Txt (FormattingValue, "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub 

Una ay idineklara ko ang dalawang variable bilang isang string sa VBA

 Dim FormattingValue Bilang String Dim FormattingResult As String 

Para sa unang variable, naitalaga ko ang numero ng pag-format na kailangan naming i-format.

FormattingValue = 0.564

Ngayon para sa isa pang variable, naitalaga ko ang pagpapaandar ng TEXT.

FormattingResult = WorksheetFunction.Txt (FormattingValue, "hh: mm: ss AM / PM")

Kung napansin mong inilapat ko ang pag-format ng oras ibig sabihin ay "hh: mm: ss AM / PM"

Pagkatapos sa wakas ay nag-apply ako ng isang kahon ng mensahe ng VBA upang maipakita ang resulta.

Pag-format ng MsgBoxResult

Kapag pinatakbo ko ang code na TEXT function ay maglalapat ng format ng oras sa bilang na 0.564 at ipakita ang resulta tulad ng sa ibaba.

Kaya, nakuha namin ang oras bilang "01:32:10 PM”.

Halimbawa # 2

Katulad ng halimbawa ng format ng petsa, gumawa kami ng kaunting pagbabago sa halimbawang ito. Nasa ibaba ang code.

Code:

 Sub Text_Example2 () Dim FormattingValue Bilang String Dim FormattingResult Bilang String FormattingValue = 43585 FormattingResult = WorksheetFunction.Txt (FormattingValue, "DD-MMM-YYYY") MsgBox FormattingResult End Sub 

Mula sa nakaraang code, binago ko ang Halaga ng Pag-format mula 0.565 hanggang 43585 at binago ang istilo ng pag-format bilang "DD-MMM-YYYY".

Ilalapat nito ang pag-format sa bilang na 43585 bilang petsa at ang resulta ay ang mga sumusunod.

Ilapat ang Pag-format sa Mga Cell

Nakita namin ang mga simpleng halimbawa, ngayon tingnan kung paano gumana sa mga cell sa isang worksheet. Para sa halimbawang ito tingnan ang data sa ibaba.

Para sa lahat ng mga numerong ito kailangan naming ilapat ang format ng oras. Para sa ibaba code na ito ay ilalapat ang pag-format.

Code:

 Sub Text_Example3 () Dim k Bilang Integer Para sa k = 1 hanggang 10 Mga Cell (k, 2). Halaga = WorksheetFunction.Txt (Mga Cell (k, 1). Halaga, "hh: mm: ss AM / PM") Susunod k Wakas Sub 

Ang code na ito ay loop sa pamamagitan ng 10 mga cell at ilapat ang pag-format tulad ng sa ibaba.

Tulad nito, sa pamamagitan ng paggamit ng pagpapaandar ng VBA TEXT maaari nating mailapat ang pag-format ng numero sa mga cell.