แปลงข้อความทั้งหมดเป็น UPPERCASE ใน Google Spreadsheet


11

ฉันมีสเปรดชีตที่ฉันแบ่งปันกับผู้อื่นเพื่อรวบรวมข้อมูลบางอย่าง แต่ละคนเป็นเพียงแค่ (ควรจะ) ใส่อักขระเดียวในช่วงของเซลล์

ฉันจะทำให้เซลล์เหล่านั้นเปลี่ยนเป็นตัวพิมพ์ใหญ่ได้อย่างไร

การใช้งาน=UPPER()ในแต่ละเซลล์นั้นดูเหมือนจะไม่ใช่การเริ่มต้นเพราะสิ่งนั้นจะถูกเขียนทับโดยสิ่งที่พวกเขาป้อน


ใครช่วยขยายคำตอบนี้ได้ไหม โดยเฉพาะอย่างยิ่งเมื่อฉันเขียนและบันทึกสคริปต์ของฉันฉันจะรันมันในช่วงของเซลล์ที่กำหนดใน Google ชีตของฉันได้อย่างไร
tomh

คำตอบ:


12

นี่คือสคริปต์ที่แปลงอินพุตให้เป็นตัวพิมพ์ใหญ่โดยอัตโนมัติ:

function onEdit(e) {
  if (typeof e.value != 'object') {
    e.range.setValue(e.value.toUpperCase());
  }
}

จากสเปรดชีตให้ไปที่เครื่องมือ> เครื่องมือแก้ไขสคริปต์ ใส่รหัสข้างต้นในหน้าต่างรหัส (แทนที่สิ่งที่กรอกไว้ล่วงหน้าแล้ว) และบันทึก


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

=regexmatch(A1,"^[A-Z]$")

นี่คือสมมติว่ามุมซ้ายบนของช่วงคือ A1 และคุณคาดหวังว่าตัวอักษรของตัวอักษรละติน การแสดงออกปกติ^[A-Z]$หมายถึง: จุดเริ่มต้นของสตริง; อักขระเดี่ยวในช่วง AZ จุดสิ้นสุดของสตริง


ใครช่วยขยายคำตอบนี้ได้ไหม โดยเฉพาะอย่างยิ่งเมื่อฉันเขียนและบันทึกสคริปต์ของฉันฉันจะรันมันในช่วงของเซลล์ที่กำหนดใน Google ชีตของฉันได้อย่างไร
tomh

@tomh สคริปต์นี้ใช้งานได้ทั้งสเปรดชีต คุณคิดว่าจะใช้งาน=ARRAYFORMULA(UPPER(A:Z)หรือไม่?
0

สวัสดี - ฉันขอให้กระบวนการทีละขั้นตอนใช้สคริปต์และนำไปใช้กับช่วงของเซลล์ที่ไฮไลต์ในแผ่นงาน เป็นการดีเลิศจากคำสั่งเมนู
tomh

@tomh คุณได้รับสคริปต์นี้ทำงานหรือไม่
0

ไม่ฉันใช้ส่วนเสริมที่เรียกว่ากรณีเพื่อให้ได้ผลเช่นเดียวกัน แต่ฉันต้องการทราบวิธีการใช้สคริปต์กับชุดของเซลล์ในแผ่นงานและฉันคิดว่ามันจะเป็นคำตอบที่มีประโยชน์ในบทความนี้
tomh

1

นี่คือสิ่งที่คุณต้องการ

เพียงแค่เปลี่ยนบรรทัดนี้ในสคริปต์ ...

ui.createMenu ('เมนูที่กำหนดเอง')

...สำหรับสิ่งนี้...

ui.createMenu ('การเปลี่ยนเคส')

... เพื่อตัวคุณเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.