ฟังก์ชั่นพื้นฐานของ vba

ติดต่อโกลอฟนา

เบราว์เซอร์ ฟังก์ชั่น-ขั้นตอนі - นี่เป็นขั้นตอน VBA ชนิดพิเศษที่จะหมุนเวียนผลลัพธ์.

ฟังก์ชันขั้นตอนของไคลเอ็นต์ เช่น ฟังก์ชัน VBA ในตัว สามารถใช้อาร์กิวเมนต์ที่มีชื่อหรือไม่ก็ได้

หากต้องการบันทึกขั้นตอนการทำงาน คุณจะไม่สามารถใช้เครื่องบันทึกมาโครได้ แม้ว่าคุณจะสามารถแก้ไขการบันทึกของเครื่องบันทึกมาโครและเปลี่ยนให้เป็นขั้นตอนการทำงานได้ก็ตาม
ข้อแตกต่างที่สำคัญระหว่าง function-procedure และขั้นตอนอื่นๆ นอกเหนือจากข้อเท็จจริงที่ว่าฟังก์ชันหมุนค่า แต่ขั้นตอนไม่ได้อยู่ที่ข้อเท็จจริงที่ว่า function-procedure มีคีย์เวิร์ดที่เลือกไว้
- นี่เป็นขั้นตอน VBA ชนิดพิเศษที่จะหมุนเวียนผลลัพธ์

การทำงาน ฟังก์ชันสิ้นสุดไวยากรณ์:

ชื่อฟังก์ชัน()

“คำสั่ง VBA

การทำงาน-

คำหลัก

,เสียงของฟังก์ชันคืออะไร


ชื่อ – ชื่อของฟังก์ชัน

ชื่อฟังก์ชันเป็นไปตามกฎเดียวกันกับชื่อตัวระบุ VBA อื่นๆ


Arglist - รายการอาร์กิวเมนต์สำหรับฟังก์ชันนี้ ซึ่งเป็นองค์ประกอบที่ไม่มีผลผูกพัน



ประเภท - ค่าฟังก์ชันประเภทใดที่กำลังหมุน



จากตัวอย่างง่ายๆ นี้ ฉันคิดว่าแนวคิดหลักของการใช้ฟังก์ชันขั้นตอนง่าย ๆ เป็นที่เข้าใจแล้ว - ปรับปรุงความสามารถในการอ่านโค้ดโปรแกรมและการย่อให้สั้นลง (กล่าวอีกนัยหนึ่งคือฟังก์ชันขั้นตอนจะถูกเขียนเมื่อโค้ดโปรแกรมถูกเขียน เขียนมากกว่า 2-3 ครั้งด้วย "เนื้อหา" เดียวกันของโค้ด)


ในความเป็นจริง ขั้นตอนการทำงานของเราไม่ได้ถูกสร้างขึ้นจากแถวเดียว แต่จาก 10 แถว;

และโค้ดโปรแกรมจะแบ่งออกเป็น function-procedure นี้ 5 ครั้ง จากนั้นรายการโปรแกรมสุดท้ายจะเล็กลง 38 แถว

ตามที่ระบุไว้ก่อนหน้านี้ VBA จะส่งผ่านอาร์กิวเมนต์ทั้งหมดไปยังกระบวนงานฟังก์ชันเป็นประเภทตัวแปร

คุณสามารถเลือกประเภทของข้อมูลสำหรับอาร์กิวเมนต์สกินได้ในรายการอาร์กิวเมนต์

รหัสโปรแกรมเกือบทั้งหมดของโมดูล VBA อยู่ในโพรซีเดอร์สองประเภท: โปรแกรมย่อย (โปรแกรมย่อย) และฟังก์ชัน (ฟังก์ชัน)

- นี่เป็นขั้นตอน VBA ชนิดพิเศษที่จะหมุนเวียนผลลัพธ์

วัตถุประสงค์หลักของกระบวนงานฟังก์ชันคือการคำนวณค่าและส่งกลับไปยังจุดหนึ่งในกระบวนงานฟังก์ชัน

ไวยากรณ์ของขั้นตอนการทำงาน:

ฟังก์ชั่น Function_name(อาร์กิวเมนต์ As) As

Function_Name = หมุน_ค่า

ขั้นตอนการทำงานอาจใช้ในภาษาที่แตกต่างกัน

ก้น 1

ตัวอย่างเช่น ขั้นตอนฟังก์ชันที่ง่ายที่สุดคือ Function:

ฟังก์ชัน F1(x As Currency) เป็นสกุลเงิน

สามารถใช้ฟังก์ชัน F1(x) ในการคำนวณเพิ่มเติมได้ (โค้ดโปรแกรมของโมดูล)

ขั้นตอนประเภท Function สามารถยุติได้โดยไม่ต้องเรียกจากขั้นตอนอื่น

โดยในโพรซีเดอร์ที่เรียกนั้นจำเป็นต้องกำหนดชื่อให้กับ F1(x) ให้กับตัวแปรบางตัว

ก้น 2

ตัวอย่างเช่น ฟังก์ชัน F1(x) สามารถแก้ไขได้จากขั้นตอน MySub() โดยการกำหนดตัวแปรให้กับชื่อ F1(x)

Dim y As Single 'การเปลี่ยนแปลงที่น่าทึ่ง'

y = F1 (9) 'ค่าของ F1 (x) สำหรับค่า x=9

ฟังก์ชันจะหมุนค่าผลลัพธ์แทนชื่อที่กำหนด ซึ่งจะใช้ในการคำนวณครั้งต่อไป

ตามกฎแล้ว ฟังก์ชันจำเป็นต้องมีความชัดเจนของอาร์กิวเมนต์ เนื่องจากฟังก์ชันเหล่านี้เขียนในรูปแบบโค้งผ่านโคม่า

ฟังก์ชั่นทั้งหมดไม่จำเป็นต้องมีข้อโต้แย้ง

ตัวอย่างเช่น ฟังก์ชัน Now() ซึ่งไม่ต้องใช้อาร์กิวเมนต์ จะหมุนเวียนวันที่และชั่วโมงของระบบที่แน่นอน

ฟังก์ชันสามารถแก้ไขได้เพื่อสร้างนิพจน์หรือฟังก์ชันใหม่

จะแทรกฟังก์ชันลงในโปรแกรมข้อความได้อย่างไร?

หากต้องการใช้ฟังก์ชันไวรัส คุณต้องป้อนชื่อในคำสั่ง VBA

หากต้องการเรียกใช้ฟังก์ชันที่ไม่ต้องใช้อาร์กิวเมนต์ เพียงป้อนชื่อฟังก์ชัน (เช่น Now) ในโค้ดโมดูลโปรแกรมก็เพียงพอแล้ว:

ย่อย MyDate()

Dim TD 'การเปลี่ยนแปลงอันน่าทึ่ง TD

TD = ตอนนี้ 'หมายความว่าฉันจะตรวจสอบวันที่และเวลาของระบบ

Debug.Print TD 'ค่าที่แสดงอยู่ในหน้าต่างทันที'

หากต้องการเรียกใช้ฟังก์ชันที่ต้องป้อนอาร์กิวเมนต์หนึ่งหรือหลายตัว คุณต้องป้อนชื่อที่กำหนดพร้อมพารามิเตอร์ (ค่าอาร์กิวเมนต์) ทางด้านขวาของตัวดำเนินการ

  • ตัวอย่างเช่น สำหรับการเรียกที่แทรก Function Log (N) ด้วยตัวแปร N หนึ่งตัว ตัวแปรย่อยของโพรซีเดอร์ Log_N จะถูกกำหนดชื่อของฟังก์ชัน Log (50) ด้วยค่าของอาร์กิวเมนต์ 50
  • ลอการิทึมธรรมชาติย่อย()
  • Dim LogN 'การเปลี่ยนแปลง LogN ที่น่าตะลึง
  • Debug.Print LogN 'ค่าที่แสดงอยู่ในหน้าต่างทันที'
  • หมายเหตุ 1
  • ที่นี่ฟังก์ชัน Log (N) ถูกนำมาใช้สำหรับค่าของอาร์กิวเมนต์เท่ากับ 50 และหมุนค่า 3.91202300542815 ที่จุดในฟังก์ชัน Log (50) ซึ่งเรียกขั้นตอน "Sub Natural_logarithm ()"

ฟังก์ชันสามารถเรียกว่าเป็นคำสั่ง VBA แยกต่างหากหรือโดยการใส่ชื่อลงในรายการค่าอาร์กิวเมนต์ (พารามิเตอร์) ในสูตรหรือโปรแกรมในโปรแกรม VBA

เพื่อการเขียนอย่างรวดเร็ว VBA มีกลไกฟังก์ชันแบบซ้อนที่ช่วยให้คุณสามารถระบุการเรียกใช้ฟังก์ชันหนึ่งเป็นอาร์กิวเมนต์สำหรับฟังก์ชันอื่นได้

  • ในกรณีนี้ ค่าที่หมุนโดยฟังก์ชันแรกจะถูกใช้เป็นอาร์กิวเมนต์สำหรับฟังก์ชันถัดไป
  • VBA มีชุดฟังก์ชันและขั้นตอนในตัวจำนวนมากเพื่อทำให้การเขียนโปรแกรมง่ายขึ้น ซึ่งสามารถแบ่งออกเป็นประเภทต่างๆ ต่อไปนี้:
  • คณิตศาสตร์;
  • ฟังก์ชั่นการตรวจสอบประเภท
  • ฟังก์ชันการประมวลผลแถว
  • ฟังก์ชั่นรูปแบบ;
  • ฟังก์ชั่นการแปลงรูปแบบ
  • ฟังก์ชันวันที่และชั่วโมง
  • Tan(x) - แทนเจนต์ของ $ x $;
  • Sgn(x) – เครื่องหมายของ $x$

Fix(x) และ Int(x) ทั้งสองฟังก์ชันบวกเศษส่วนของตัวเลขแล้วหมุนค่าทั้งหมด

ความแตกต่างระหว่างฟังก์ชันเหล่านี้อยู่ที่ค่าลบของอาร์กิวเมนต์

Int(x) หมุนจำนวนเต็มลบที่ใกล้เคียงที่สุดซึ่งน้อยกว่าหรือเท่ากับ x และ Fix(x) หมุนจำนวนเต็มลบที่ใกล้เคียงที่สุดที่มากกว่าหรือเท่ากับ x

  • ฟังก์ชั่นการตรวจสอบประเภท
  • ให้เราแนะนำฟังก์ชันที่ระบุว่ามีการเปลี่ยนแปลงประเภทใด:
  • IsArray(x) – ฟังก์ชั่นตรวจสอบว่าเป็นอาร์เรย์หรือไม่
  • IsDate(x) หมายถึงวันที่เปลี่ยนแปลงได้
  • IsError(x) หมายความว่ามีการเปลี่ยนแปลงโดยรหัสข้อผิดพลาด
  • IsNull(x) หมายความว่าค่าเท่ากับค่าว่าง

IsNumeric(x) หมายถึงค่าตัวเลข

IsObject(x) หมายความว่าเป็นวัตถุที่เปลี่ยนแปลงได้

ฟังก์ชั่นการจัดรูปแบบ

  • ฟังก์ชันการจัดรูปแบบจะหมุนค่าของประเภท Variant (String) เพื่อรองรับการจัดรูปแบบของไวยากรณ์ของฟังก์ชัน:
  • รูปแบบ(Virazhennya[,รูปแบบ [,วันแรกของปี[,วันแรกของ Roku]]]) โดยที่:

Viraz เป็นอาร์กิวเมนต์บังคับ (หากอนุญาตให้ใช้นิพจน์ มันเป็นการรวมกันของคีย์เวิร์ด ตัวดำเนินการ ตัวแปร และค่าคงที่ ซึ่งผลลัพธ์จะเป็นอนุกรม ตัวเลข หรืออ็อบเจ็กต์)

รูปแบบเป็นพารามิเตอร์ที่ไม่ผูกมัด (ไม่ว่าจะตั้งชื่อถูกต้องหรือไม่ตามรูปแบบก็ตาม)

  • หากมีการเพิ่มเครื่องหมาย $ ลงในชื่อฟังก์ชัน ฟังก์ชันจะหมุนค่าประเภท String จากนั้นฟังก์ชันจะหมุนค่าประเภท String
  • เมื่อใช้รูปแบบตัวเลขที่ถูกต้อง คุณสามารถใช้สัญลักษณ์ต่อไปนี้:
  • 0 – สงวนตำแหน่งของบิตดิจิทัล
  • แสดงตัวเลขหรือศูนย์
  • หากตัวเลขที่จัดรูปแบบมีตัวเลขอยู่ในตำแหน่งนี้และมีเลข 0 ในแถวรูปแบบ ฟังก์ชันจะแสดงตัวเลขนั้น หรือเลขศูนย์จะแสดงในตำแหน่งนั้น

"#" - การกระทำของสัญลักษณ์นี้คล้ายกับของ 0 โดยมีความแตกต่างว่าจะไม่แสดงศูนย์ที่ไม่มีนัยสำคัญ

- – สงวนตำแหน่งของตัวคั่นที่สิบซึ่งหมายถึงจำนวนหลักที่ต้องแสดงทางซ้ายและทางขวาจากจุดที่สิบ

  • % – สงวนเปอร์เซ็นต์ของตัวเลขที่แสดง
  • - - แบ่งจากร้อยเป็นพัน

ฟังก์ชั่นสำหรับการแปลงรูปแบบ

พวกเขาบอกว่า:

Val (แถว) – หมุนตัวเลขในแถวเหมือนกับค่าตัวเลขประเภทเดียวกัน

  • Str (ตัวเลข) – หมุนค่าประเภท Variant (String) ซึ่งหมายถึงหมายเลขซีเรียล นอกจากฟังก์ชัน Val และ Str แล้ว ยังมีฟังก์ชันอีกมากมายสำหรับการแปลงประเภทไวรัสฟังก์ชันการประมวลผลแถว
  • Mid(string, pos[,length]) – หมุนลำดับของแถวเพื่อรองรับจำนวนอักขระที่ระบุ และ String – หมุนลำดับที่จะหมุนลำดับ
  • Pos – ตำแหน่งของสัญลักษณ์ในแถว String ซึ่งความจำเป็นในการปรับเปลี่ยนเริ่มต้นขึ้น
  • ความยาว – จำนวนอักขระที่จะหมุน, สตริงย่อย;
  • Len (แถว) – หมุนจำนวนสัญลักษณ์ในแถว

ฟังก์ชันเวลาและวันที่

หมุนค่าประเภท Variant เพื่อแก้ไขวันที่ของระบบ ชั่วโมงปัจจุบันเป็นต้น เช่น ฟังก์ชัน Date จะหมุนค่าเพื่อแก้ไขวันที่ของระบบ

เมื่อเขียนโค้ด VBA Excel ชุดตัวดำเนินการที่แทรกไว้จะถูกนำไปใช้กับสกิน

ตัวดำเนินการเหล่านี้แบ่งออกเป็นตัวดำเนินการทางคณิตศาสตร์ แถว สมการ และตรรกะ

ต่อไปเราจะมาดูกลุ่มสกินของผู้ปฏิบัติงานกัน

ตัวดำเนินการทางคณิตศาสตร์ ตัวดำเนินการทางคณิตศาสตร์หลักของ VBA สรุปไว้ในตารางด้านล่างคอลัมน์ด้านขวาของตารางแสดงลำดับความสำคัญของผู้ปฏิบัติงานโดยคำนึงถึงต่อหน้าอาวุธ

ด้วยการเพิ่มคันธนู คุณสามารถเปลี่ยนลำดับของสายได้

ตัวดำเนินการ VBA & สำหรับ bazhannyam ของคุณ

ตัวดำเนินการสตริง

ตัวดำเนินการแถวหลักใน Excel VBA คือตัวดำเนินการต่อข้อมูล (โกรธ):ผู้ประกอบการ

ตัวดำเนินการปรับสมดุลใช้เพื่อปรับตัวเลขหรือชุดข้อมูลสองตัวให้เท่ากันและหมุนค่าตรรกะของประเภท

บูลีน (โกรธ):(จริงหรือเท็จ)

ตัวดำเนินการจัดตำแหน่ง Excel VBA หลักแสดงอยู่ในตารางนี้: ตัวดำเนินการเชิงตรรกะตัวดำเนินการเชิงตรรกะ เช่น ตัวดำเนินการปรับสมดุล จะหมุนค่าตรรกะให้เป็นประเภท

(จริงหรือเท็จ)

ตัวดำเนินการเชิงตรรกะหลักของ Excel VBA สรุปไว้ในตารางด้านล่าง:

ตารางเหล่านี้ได้รับการจัดเรียงใหม่โดยใช้ตัวดำเนินการเชิงตรรกะที่มีอยู่ใน VBA อย่างเต็มรูปแบบ รายการใหม่
ตัวดำเนินการทางลอจิคัลสามารถพบได้บนเว็บไซต์ Visual Basic Developer Center ฟังก์ชั่นที่เพิ่มเข้ามา
  • ใน VBA ไม่มีฟังก์ชันในตัวที่สามารถหยุดชะงักได้เมื่อเขียนโค้ดข้อตกลงที่มีการโต้ตอบมากเกินไปน้อยที่สุดกับข้อตกลงที่ถูกละเมิดบ่อยที่สุด:
  • การทำงานดีย่า
หน้าท้อง หมุนค่าสัมบูรณ์ของตัวเลขที่กำหนด
  • หน้าท้อง(-20)หมุนค่า 20;
  • หน้าท้อง(20)หมุนค่า 20 .
หมุนอักขระ ANSI เพื่อแสดงค่าตัวเลขของพารามิเตอร์ ช(10)
หมุนแถวที่ถ่ายโอน ช.(97)

หมุนสัญลักษณ์ , วันที่ , เปลี่ยนวันที่ของระบบที่แน่นอน )

วันที่เพิ่ม เพิ่มช่วงชั่วโมงใหม่จนถึงวันที่ที่ระบุ ไวยากรณ์ของฟังก์ชัน:วันที่เพิ่ม( วันที่ .

ช่วงเวลา ตัวเลข

  • วันที่อาร์กิวเมนต์
  • DateAdd(“ww”, 36, “01/01/2015”)บวก 36 ทศวรรษเข้ากับวันที่ 01/01/2558 และหมุนวันที่ 09/09/2558
DateDiff นับจำนวนช่วงเวลาระหว่างวันที่กำหนดสองวัน
  • DateDiff(“d”, “01/01/2558”, “02/02/2558”)คำนวณจำนวนวันระหว่างวันที่ 01/01/2558 ถึง 02/02/2558 หมุนผลลัพธ์ 32
  • DateDiff("ww", "01/01/2558", "03/03/2559")คำนวณจำนวนปีระหว่างวันที่ 01/01/2558 ถึง 03/03/2559 หมุนผลลัพธ์ 61
วัน หมุนตัวเลขจำนวนเต็มที่แสดงวันของเดือนสำหรับวันที่ที่กำหนด

ก้น: วัน(“01/29/2558”)เปลี่ยนหมายเลข 29

ชั่วโมง หมุนจำนวนเต็มที่แสดงจำนวนปีในชั่วโมงที่กำหนด

ก้น: ชั่วโมง(“22:45:00”)เปลี่ยนหมายเลข 22

InStr ใช้เป็นอาร์กิวเมนต์จำนวนเต็มและสองแถว
  • หมุนตำแหน่งของรายการของอีกแถวหนึ่งที่อยู่ตรงกลางของแถวแรก โดยเริ่มจากตำแหน่งที่ระบุด้วยจำนวนเต็ม InStr(1, "จากคำ shukane", "คำ")
  • เปลี่ยนหมายเลข 13 InStr(14, "จากคำว่า shukane และแกนคือคำว่า shukane", "word")

เปลี่ยนหมายเลข 38บันทึก:

อาร์กิวเมนต์ตัวเลขอาจไม่ใช่งาน ในกรณีนี้ การค้นหาจะเริ่มต้นด้วยอักขระตัวแรกของแถวที่ระบุในอาร์กิวเมนต์ฟังก์ชันอื่น นานาชาติ

ก้น: หมุนส่วนหนึ่งของตัวเลขที่กำหนดอินท์(5.79)

หมุนผลลัพธ์ 5 ไอดาเตะ เลี้ยวจริง หากให้ค่าตามวันที่มิฉะนั้นเท็จ
  • - มันไม่ใช่วันที่ IsDate(“01/01/2015”) เลี้ยว;
  • เปลี่ยน IsDate(“01/01/2015”) หากให้ค่าตามวันที่มิฉะนั้น.
อิสเดท(100) ไอดาเตะ เลี้ยวเป็นข้อผิดพลาด หากให้ค่าตามวันที่มิฉะนั้นถ้าให้ค่าก็ง่ายหรือ
- ฉันไม่ชอบมันด้วยความเมตตา กำลังหายไป - ฉันไม่ชอบมันด้วยความเมตตา IsDate(“01/01/2015”) เลี้ยวเนื่องจากเป็นอาร์กิวเมนต์ของฟังก์ชัน ชื่อของอาร์กิวเมนต์ของขั้นตอนทางเลือกจะถูกส่งผ่าน
หากไม่มีการส่งผ่านค่าไปยังอาร์กิวเมนต์ของโพรซีเดอร์ที่กำลังวิเคราะห์ ไอดาเตะ เลี้ยวเป็นตัวเลข หากให้ค่าตามวันที่มิฉะนั้น.
หากสามารถดูค่าที่กำหนดเป็นตัวเลขได้ ให้หมุนด้วยวิธีอื่น ซ้าย

หมุนจำนวนสัญลักษณ์ที่ระบุต่อหัวของแถวที่ส่ง ไวยากรณ์ของฟังก์ชันแกนคือ: , ซ้าย( )

แถว ไวยากรณ์ของฟังก์ชันแกนคือ:โดฟซินา ซ้าย(เดอ

  • – นี่คือแถวทางออก และ– สัญลักษณ์จำนวนหนึ่งหมุนวนโดยมีกลิ่นอยู่ต้นแถว
  • ซ้าย("abvgdezziklmn", 4)หมุนแถว "abvg";
ซ้าย("abvgdezіklmn", 1) เปลี่ยนแถว "a"

ก้น: เลนหมุนสัญลักษณ์จำนวนหนึ่งติดต่อกัน

เลน("abvgdez") เปลี่ยนหมายเลข 7

ก้น: เดือนหมุนตัวเลขจำนวนเต็มที่แสดงถึงเดือนของวันที่ที่กำหนด

เดือน(“01/29/2558”) หมุนค่า 1

กลาง ไวยากรณ์ของฟังก์ชันแกนคือ: , หมุนจำนวนสัญลักษณ์ที่ระบุจากตรงกลางของแถวที่ส่ง , ซ้าย( )

แถว ไวยากรณ์ของฟังก์ชันแกนคือ:ไวยากรณ์ของฟังก์ชัน: หมุนจำนวนสัญลักษณ์ที่ระบุจากตรงกลางของแถวที่ส่งกลาง( ซ้าย(ซัง

  • - นี่คือแถวทางออก- ตำแหน่งซังของแถวรองเท้า
  • – จำนวนสัญลักษณ์ที่ต้องระบุกลาง("abvgdezziklmn", 4, 5)
เปลี่ยนแถวของ "dezz"; กลาง("abvgdezziklmn", 10, 2) เปลี่ยนแถว "cl"นาที
หมุนจำนวนเต็มที่แสดงถึงจำนวนวัวในชั่วโมงที่กำหนด เปลี่ยนวันที่และชั่วโมงของระบบที่แน่นอน
ขวา หมุนตามจำนวนสัญลักษณ์ที่ระบุที่ส่วนท้ายของแถวที่ส่ง

ไวยากรณ์ของฟังก์ชัน: ไวยากรณ์ของฟังก์ชันแกนคือ: , ซ้าย( )

ขวา( ไวยากรณ์ของฟังก์ชันแกนคือ:โดฟซินา ซ้าย(เด

  • – สัญลักษณ์จำนวนหนึ่งที่ต้องวาด โดยสิ้นสุดที่ท้ายแถวที่กำหนดขวา("abvgdezziklmn", 4)
  • หมุนแถว “klmn”;ขวา("abvgdez_klmn", 1)
เปลี่ยนแถว "n" ที่สอง

ก้น: หมุนจำนวนเต็มที่แสดงจำนวนวินาทีในชั่วโมงที่กำหนดที่สอง (“22:45:15”)

หมุนค่า 15 ตร.ม
  • หมุนรากที่สองของค่าตัวเลขที่ส่งผ่านเป็นอาร์กิวเมนต์ตร.ม.(4)
  • หมุนค่า 2;ตร.ม.(16)
หมุนค่า 4 เวลา
หมุนนาฬิกาของระบบ อุบลฯ

เปลี่ยนหมายเลข 38หมุนดัชนีด้านบนของอาร์เรย์ที่กำหนด สำหรับเทือกเขาโลกที่ร่ำรวย

เนื่องจากสามารถระบุอาร์กิวเมนต์ที่ไม่มีผลผูกพันได้ จึงต้องหมุนดัชนีเอง

  1. หากไม่ได้ระบุให้ทำตามคำแนะนำที่ 1
  2. ฟังก์ชันนี้เขียนใน VBA - นี่คือโค้ดที่คำนวณการคำนวณและหมุนค่า (หรือค่าอาร์เรย์)
  3. เมื่อคุณสร้างฟังก์ชันแล้ว คุณสามารถใช้งานได้สามวิธี:

เช่นเดียวกับสูตรใน Arkusha คุณสามารถยอมรับอาร์กิวเมนต์และหมุนค่าได้

เป็นส่วนหนึ่งของรูทีน VBA ของคุณ

ขั้นตอนย่อยมีหน้าที่อื่นเช่นกัน

กฎเกณฑ์ของรูปแบบทางจิต

ฉันต้องการให้ Excel มีฟังก์ชันในตัวมากกว่า 450 ฟังก์ชัน แต่ก็ยังไม่แสดงขึ้นมาเป็นครั้งคราว

ฟังก์ชันในตัวบางอย่างไม่สามารถเพิ่มลงในฟังก์ชันที่คุณต้องการใช้ได้

สำหรับขั้นตอนเพิ่มเติม (ย่อย) คุณสามารถดำเนินการผ่านตรงกลางและดูขั้นตอนที่ไม่ได้จับคู่สำหรับการเติมเพิ่มเติมได้

และหน้าที่นี้สามารถได้รับชัยชนะในการโต้แย้งของศาล และในทุกโอกาส ความจริงหรือการโกหกก็อยู่ในความหมายของผู้ชายคนนั้น

โตโต้

คุณไม่สามารถเปลี่ยนสีเติมได้โดยใช้ฟังก์ชันเพิ่มเติมบนส่วนโค้ง

การสร้างฟังก์ชัน koristuvach อย่างง่ายใน VBA

มาสร้างฟังก์ชัน koristuvach อย่างง่ายใน VBA แล้วดูว่าทุกอย่างทำงานอย่างไร ด้านล่างนี้คือโค้ดฟังก์ชัน ซึ่งจะลบตัวเลขออกจากข้อความและความหมายของตัวอักษรหมายเลขฟังก์ชัน (ข้อความเป็นสตริง) หรี่ยาว i หรี่ยาวผลลัพธ์เป็นสตริง For i = 1 To Len (ข้อความ) ถ้า IsNumeric (กลาง (ข้อความ, i, 1)) ผลลัพธ์ = ผลลัพธ์ & กลาง (ข้อความ, i, 1 ) ตัวเลขถัดไป = CLng(ผลลัพธ์) ฟังก์ชันสิ้นสุด

เพื่อที่จะขอได้ทุกอย่างต้องใส่เข้าไป

รหัสเดนมาร์ก

มันใช้งานได้ราวกับว่ามีการแนะนำฟังก์ชั่นอื่น (วิธีการสร้าง

ฟังก์ชั่นที่ได้รับมอบหมาย

, รอซคัซโมโม ดาลี).

หากคุณป้อนเครื่องหมาย "=" และเริ่มเข้าสู่ฟังก์ชัน Excel จะแสดงรายการทั้งหมดและไม่เพียงแสดงฟังก์ชันที่คุณป้อนเท่านั้น แต่ยังรวมถึงฟังก์ชันที่จำเป็นด้วย ฟังก์ชั่น-ขั้นตอนมาวิเคราะห์ฟังก์ชันทีละขั้นตอนกัน ตอนนี้เรามาเจาะลึกและประหลาดใจกับวิธีการสร้างฟังก์ชันนี้.

  • ฟังก์ชั่นการชาร์จเริ่มต้นขึ้น
  • หมายเลขฟังก์ชัน (ข้อความเป็นสตริง) ตราบเท่าที่
  • คำ พูดคุยเกี่ยวกับจุดเริ่มต้นของฟังก์ชั่นเพิ่มเติมเกี่ยวกับชื่อของมันในความคิดของเราตัวเลข

หน้าที่ของพวกเขาไม่สามารถแก้ไขช่องว่างได้ นอกจากนี้คุณไม่สามารถตั้งชื่อฟังก์ชันได้เนื่องจากรวมอยู่ในแพ็คเกจที่ส่งถึงบริษัทตัวอย่างเช่น คุณไม่สามารถตั้งชื่อฟังก์ชัน ABC123 ได้ เนื่องจากชื่อนี้ใช้กับกล่อง Excel ด้วย คุณไม่มีความผิดในการระบุฟังก์ชันของคุณด้วยชื่อเดียวกับฟังก์ชันหลักของคุณเมื่อคุณทำเช่นนี้ Excel จะให้ข้อได้เปรียบแก่คุณในการแนะนำฟังก์ชันนี้ หากต้องการแยกคำก็ใช้สัญลักษณ์อาร์มแชร์ได้(ซึ่งหมายความว่าคุณสามารถเลือกข้อมูลประเภทใดก็ได้ VBA สามารถตรวจสอบได้ด้วยตัวเอง)

ส่วนที่เหลือของแถวแรก ตราบเท่าที่ระบุประเภทของข้อมูลที่ใช้ในการหมุนฟังก์ชัน

ในเวอร์ชันของเรา ฟังก์ชันจะหมุนค่าเป้าหมาย

นี่ยังไม่เน้นภาษามากนัก

ฟังก์ชันอื่นและแถวที่สามแสดงการเปลี่ยนแปลงภายในเพิ่มเติมที่เราจะสังเกต Dim i As Long Dim ผลลัพธ์เป็นสตริงสมินนู ฉันเราใช้ vikoristuvatimemo เพื่อแจกแจงสัญลักษณ์

และฉันจะเปลี่ยนแปลง

ผลลัพธ์

บันทึกผลลัพธ์ระดับกลางของฟังก์ชัน

ภารกิจคือการดูสัญลักษณ์ทั้งหมดของข้อความตัวแปรและบันทึกสัญลักษณ์เหล่านั้นด้วยตัวเลข

นั่นเป็นสาเหตุที่เราต้องวนจาก 1 ไปยังสัญลักษณ์ที่เหลือ

สำหรับ i = 1 ถึง Len(ข้อความ) หากไม่มีการส่งผ่านค่าไปยังอาร์กิวเมนต์ของโพรซีเดอร์ที่กำลังวิเคราะห์ Len เป็นฟังก์ชันที่ใช้ระบุจำนวนอักขระ เลี้ยวหน้าที่หลักของฟังก์ชันคือการตรวจสอบว่าอักขระถัดไปในข้อความเป็นตัวเลขหรือไม่ และบันทึกไว้ในผลลัพธ์อื่น หากให้ค่าตามวันที่มิฉะนั้นถ้า IsNumeric(Mid(Text, i, 1)) ผลลัพธ์ = result & Mid(Text, i, 1)

ทำไมเราถึงต้องการฟังก์ชั่นนี้? เดือน(“01/29/2558”)- เธอหันกลับมา Dim i As Long Dim ผลลัพธ์เป็นสตริงข้อความเป็นตัวเลข 1 ในสถานการณ์ที่แตกต่าง เดือน(“01/29/2558”)การทำงาน

ทำไมเราถึงต้องการฟังก์ชั่นนี้? ข้อความโต้แย้งเบิร์ช- อักขระตัวที่ (ความหมาย แสดงว่าฟังก์ชันใช้เวลาน้อยกว่า 1 ตัวอักษร)/

ต่อไป

- ปิดรอบ ฉันสำหรับ นอกจากนี้คุณไม่สามารถตั้งชื่อฟังก์ชันได้เนื่องจากรวมอยู่ในแพ็คเกจที่ส่งถึงบริษัททุกอย่างชัดเจนที่นี่ ตอนนี้เรามาเจาะลึกและประหลาดใจกับวิธีการสร้างฟังก์ชันนี้.

ตัวเลข = CLng (ผลลัพธ์) - นี่เป็นขั้นตอน VBA ชนิดพิเศษที่จะหมุนเวียนผลลัพธ์ที่นี่เราสร้างการเปลี่ยนแปลงข้อความขึ้นใหม่เคียงข้างกัน

วิธีแทนที่ตัวเลขทั้งหมดในอาร์กิวเมนต์ , ค่าตัวเลข Uและเราบอกว่าฟังก์ชันของเราสามารถสร้างผลลัพธ์อะไรได้บ้าง

แถวที่เหลือของโค้ดคือ

- นี่คือบรรทัดโค้ดง่ายๆ ที่บอก VBA ว่าโค้ดฟังก์ชันจะสิ้นสุดที่นี่โค้ดข้างต้นอธิบายส่วนต่างๆ ของฟังก์ชัน back office ทั่วไปที่สร้างขึ้นใน VBA ในบทความต่อไปนี้ เราจะวิเคราะห์องค์ประกอบเหล่านี้โดยละเอียดยิ่งขึ้นพร้อมทั้งพิจารณาด้วยวิธีการที่แตกต่างกัน

ฟังก์ชัน VBA ใน Excel

การสร้างฟังก์ชันของไคลเอนต์ใน VBA Excel ไวยากรณ์และส่วนประกอบ

คำอธิบายของฟังก์ชันทางประวัติศาสตร์และข้อโต้แย้ง

Application.วิธีการ MacroOptions

  • ฟังก์ชันโคริสตูวัลนิตสกายา- นี่คือขั้นตอน VBA ที่คำนวณงานและหมุนเวียนผลลัพธ์
  • Vikorist สำหรับใส่เข้าไปในกล่องจดหมายของหุ่นยนต์แผ่นงาน Excel
  • หรือลิงค์ไปยังขั้นตอนอื่นๆ- ส่วนประกอบที่ไม่มีผลผูกพัน ส่วนประกอบตั้งแต่หนึ่งรายการขึ้นไปที่แสดงถึงอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชัน
  • ข้อโต้แย้งอยู่ที่หัวเรือและแบ่งออกเป็นโคม่าผู้ประกอบการ
  • - ส่วนประกอบที่ไม่มีผลผูกพัน บล็อกของตัวดำเนินการ (คำแนะนำ)อิม'ยา = วิราซ
  • - ส่วนประกอบความหนืดเสริมที่กำหนดให้กับชื่อของฟังก์ชันของค่าของไวรัสหรือการเปลี่ยนแปลงตรวจสอบให้แน่ใจว่าได้กำหนดค่าให้กับฟังก์ชันทันทีก่อนที่จะออกจากฟังก์ชัน

*ออกจากฟังก์ชัน - ส่วนประกอบที่ไม่มีผลผูกพัน บล็อกของตัวดำเนินการ (คำแนะนำ)- ส่วนประกอบที่ไม่มีความหนืด ซึ่งเป็นเอาต์พุตพรีมัสจากฟังก์ชัน เนื่องจากได้ให้ค่าคงเหลือแล้ว

หนึ่งในองค์ประกอบ

สิ่งสำคัญคือต้องจำไว้ว่าถ้าคุณไม่ให้ค่าแก่ฟังก์ชัน ความรู้สึกจะสูญเปล่า

การมองเห็นฟังก์ชั่น การมองเห็นฟังก์ชันผู้ใช้จะระบุด้วยคำสำคัญเผื่อเลือก สาธารณะและส่วนตัว ซึ่งสามารถระบุก่อนตัวดำเนินการฟังก์ชัน (หรือแบบคงที่ในกรณีนี้)คำสำคัญ การมองเห็นฟังก์ชันผู้ใช้จะระบุด้วยคำสำคัญเผื่อเลือก สาธารณะและส่วนตัว ซึ่งสามารถระบุก่อนตัวดำเนินการฟังก์ชัน (หรือแบบคงที่ในกรณีนี้)สาธารณะ

การมองเห็นฟังก์ชั่น บ่งชี้ว่าฟังก์ชันนี้จะพร้อมใช้งานสำหรับการโทรจากขั้นตอนอื่นในโมดูลทั้งหมดของสมุดงาน Excel ที่เปิดอยู่ฟังก์ชั่นตะลึง บ่งชี้ว่าฟังก์ชันนี้จะพร้อมใช้งานสำหรับการโทรจากขั้นตอนอื่นในโมดูลทั้งหมดของสมุดงาน Excel ที่เปิดอยู่ปรากฏในกล่องโต้ตอบหลักของฟังก์ชัน

ส่วนตัว

บ่งชี้ว่าฟังก์ชันจะพร้อมสำหรับการโทรจากขั้นตอนอื่นภายในโมดูลที่ฟังก์ชันนั้นตั้งอยู่เท่านั้น

ฟังก์ชั่นตะลึง

ไม่ปรากฏในกล่องโต้ตอบหลักของฟังก์ชัน แต่คุณสามารถป้อนลงในบัญชีได้ด้วยตนเอง หากไม่ได้ระบุคำสำคัญ Public หรือ Private ฟังก์ชันจะถือเป็น Publicเพื่อให้แน่ใจว่าฟังก์ชันนี้จะพร้อมใช้งานเสมอในเวิร์กบุ๊ก Excel ที่เปิดอยู่ทั้งหมด โปรดเก็บไว้โดยไม่เปิดเผยหรือเผยแพร่ต่อสาธารณะ หากคุณวางแผนที่จะถ่ายโอนสมุดงานที่มีฟังก์ชันผู้สื่อข่าวไปยังคอมพิวเตอร์เครื่องอื่น รหัสฟังก์ชันจะต้องอยู่ในโมดูลโปรแกรมของหนังสือฟังก์ชั่นก้นของ koristuvach

เพื่อวัตถุประสงค์ในทางปฏิบัติเราจะดูฟังก์ชันที่ง่ายที่สุดของ koristuvach ซึ่งจะอธิบายไว้ในย่อหน้าถัดไป

ฟังก์ชันนี้จะแบ่งค่าของจุดกึ่งกลางสองจุดของแผ่นงาน Excel

  • ก่อนการต่อสู้ มีการตรวจสอบจิตใจสองช่วง:
  • เนื่องจากเงินปันผลและเงินปันผลไม่ใช่ตัวเลข ฟังก์ชันจะหมุนเวียนค่า: “หมายเหตุ: เงินปันผลและเงินปันผลเป็นตัวเลข!” และออกจากฟังก์ชันโดยใช้ตัวดำเนินการฟังก์ชันทางออก

หากค่าเท่ากับศูนย์ ฟังก์ชันจะหมุนค่า: “แก้ไข: ตั้งค่าเป็นศูนย์!” และออกจากฟังก์ชันโดยใช้ตัวดำเนินการฟังก์ชันทางออก

เมื่อใดก็ตามที่คุณรู้ว่าสิ่งใดกำลังตรวจสอบ ไม่ใช่แก้ไข (หมุนค่าเท็จ) ตัวเลขจะถูกแบ่งและฟังก์ชันจะหมุนเวียนแบบส่วนตัว (ผลลัพธ์ของการหาร)

คุณสามารถคัดลอกฟังก์ชันนี้ลงในโมดูลมาตรฐานของคุณได้ และฟังก์ชันนี้จะพร้อมใช้งานในส่วน "ลูกค้ากำหนด" ของฟังก์ชันหลัก

ลองแทรกฟังก์ชัน "ภาพยนตร์" ลงในแผ่นงานโดยได้รับความช่วยเหลือจากอาจารย์และทดลองดู

ฟังก์ชัน "ฟิลด์" ไม่มีความหมายเชิงปฏิบัติใดๆ แต่ทำหน้าที่ได้ดีในการสาธิตวิธีการกำหนดค่า สร้าง และใช้งานฟังก์ชันของผู้ติดต่อใน VBA Excel

  • ฉันยังจะช่วยคุณสาธิตวิธีเพิ่มฟังก์ชันและอธิบายอาร์กิวเมนต์อีกด้วย คุณสามารถทำความคุ้นเคยกับฟังก์ชั่นเต็มรูปแบบของ koristuvach ได้การเพิ่มคำอธิบายของฟังก์ชัน
  • ไม่สามารถเพิ่มหรือแก้ไขคำอธิบายในรายการฟังก์ชันที่ Maistrom แสดงได้
  • รายการมาโครช่วยให้คุณเพิ่มขั้นตอนคำอธิบายได้ แต่ไม่มีฟังก์ชันใดๆ
  • ปัญหาเกิดขึ้นดังนี้:

เปิดตัวฟังก์ชันหลัก ดูว่าชื่อแสดงอย่างไร

ฟังก์ชั่นที่จำเป็น


ปิดโยโก

เปิดและในช่อง "ชื่อมาโคร" ให้ป้อนชื่อฟังก์ชันผู้ใช้

คลิกปุ่ม "ตัวเลือก" ในหน้าต่าง เพิ่มหรือแก้ไขคำอธิบาย

คลิกปุ่ม "ตกลง" จากนั้นในหน้าต่างรายการมาโคร - "เลือก"

ชี้แจงการเตรียมการ!

หากไม่มีชื่อหมวดหมู่ดังกล่าวในรายการ ส่วนใหม่จะถูกสร้างขึ้นโดยใช้ชื่อนี้ และฟังก์ชันจะถูกวางไว้ก่อนส่วนใหม่

"คำอธิบาย 1", "คำอธิบาย 2", "คำอธิบาย 3", ...

- คำอธิบายข้อโต้แย้งตามลำดับที่ละลายไปในหน้าที่ที่งุนงงของนักข่าว

โปรแกรมนี้เปิดตัวครั้งเดียวหลังจากนั้นสามารถลบหรือใช้เป็นเทมเพลตสำหรับปรับพารามิเตอร์ของฟังก์ชันอื่น ๆ ของผู้ใช้ได้


ต่อไปโดยใช้เมธอด Application.MacroOptions เราจะพยายามเปลี่ยนคำอธิบายของฟังก์ชัน "Division" และเพิ่มคำอธิบายของอาร์กิวเมนต์