แสดงชื่อชีตใน Google Spreadsheets


39

มีวิธีใดที่จะแสดงชื่อชีตเป็นผลมาจากฟังก์ชั่นใน Google Spreadsheets (เหมือนกับคำถามนี้ยกเว้นใน Google ชีต)


โปรดดูคำตอบของฉันสำหรับคำถามนี้ใน stackoverflow: stackoverflow.com/a/53409439/279326
Nicolas Janel

คำตอบ:


11

มีคนเขียนสคริปต์เพื่อทำสิ่งนี้ มันมีอยู่ในเครื่องมือ > แกลเลอรี่สคริปต์ ... ค้นหา "ชื่อแผ่น" =getCurrentSheetName()และติดตั้งสคริปต์แล้วใช้มันด้วย


9
วิธีเข้าถึงสคริปต์นี้ใน Google ชีต "ใหม่" (ซึ่งตอนนี้ใช้ร้านค้าเสริม)
Benjamin

4
สิ่งนี้ไม่ทำงานอีกต่อไป ใช้คำตอบจาก @ user93341 ฉันผ่านกระบวนการทั้งหมดเพื่อเผยแพร่ฟังก์ชั่นของเขาไปยัง Add-On Store และในขั้นตอนสุดท้ายพวกเขาต้องการ $ 5 ในการยืนยันบัญชีของฉันและฉันจะถูก จำกัด ให้เผยแพร่ 20 รายการ เลอถอนหายใจ
Bruno Bronosky

49

ไปที่เครื่องมือตัวแก้ไขสคริปต์และเพิ่มรหัสนี้:

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

ในเซลล์ที่คุณต้องการเพิ่มชื่อชีต:

=sheetName()

มีปัญหาในการเข้าถึงชื่อชีตผ่านฟังก์ชั่น API ที่แสดงด้านล่างซึ่งจะส่งคืนชื่อชีตแรกเท่านั้น นี้ถูกแก้ไขมีนาคม 2015


คุณช่วยขยายคำตอบสำหรับพวกเราที่ไม่คุ้นเคยกับเครื่องมือสคริปต์ได้หรือไม่?
codingbadger

1
@Barry 1) เลือก Tools-> Script Editor 2) ในไฟล์ข้อความผลลัพธ์ให้เพิ่มฟังก์ชั่นนี้ในตอนท้าย 3) คลิก save 4) ตอนนี้คุณสามารถใช้ฟังก์ชั่นนี้ในแผ่นงานของคุณได้แล้ว
gamliela

5
ในขณะที่ฟังก์ชั่นนี้ใช้งานได้ดีมันไม่ได้อัพเดตเมื่อเปลี่ยนชื่อชีตดังนั้นจึงไม่มีประโยชน์จริง ๆ
jesjimher

1
@jesjimher ตามฟอรัมความช่วยเหลือของ Google Docsนี้หากมีใครไปที่เครื่องมือแก้ไขสคริปต์และบันทึกสคริปต์อีกครั้งกลับไปที่ชีตหนึ่งแล้วเห็นว่าชื่อแท็บได้รับการอัปเดตอย่างถูกต้อง
aribeiro

1
ฉันรู้ แต่มันสับสนและตรงข้ามกับการทำงานของสูตรชีตทั้งหมด ฉันคาดว่าสูตรจะอัปเดตเมื่อใดก็ตามที่มีการเปลี่ยนแปลงข้อมูลที่อ้างอิง ตอนนี้สูตรนี้ไม่ทำอย่างนั้นนอกจากฉันจะเปิดและบันทึกสคริปต์ต้นฉบับ ฉันสามารถป้อนชื่อชีตด้วยมือได้ทุกครั้งช่วยลดความยุ่งยาก
jesjimher

6

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

function GetSpreadsheetNameById(id) {
  var ss = SpreadsheetApp.openById(id);
  return ss.getName();
}

ในเซลล์ผ่านตัวระบุชีต (ดูในสเปรดชีต URL สำหรับตัวระบุ)

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')

1
นี่เป็นเพียงการเปลี่ยนแปลงเล็กน้อยสำหรับ @ user93341 คำตอบด้านบน
JamesThomasMoon1979

สิ่งนี้ทำให้เกิดข้อผิดพลาดต่อไปนี้: "คุณไม่ได้รับอนุญาตให้โทร SpreadsheetApp.openById"
Aurovrata

นี้จะส่งกลับชื่อของเอกสารแทนชื่อของแผ่นแทนที่return ss.getName();โดยreturn ss.getActiveSheet().getName();ถ้าคุณต้องการให้ชื่อของแผ่น (ผมจำเป็นต้องมีชื่อของเอกสารจริงเพื่อขอบคุณ)
Emilien

-1

ลองสิ่งนี้:

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

วางในเครื่องมือ> ตัวแก้ไขสคริปต์และเรียกใช้ฟังก์ชันจากเซลล์ดังนี้:

=getNameOfThisSheet(NOW())

NOW()อดีตGoogleClock()พารามิเตอร์จะช่วยหลีกเลี่ยงปัญหากับ memoization


GOOGLECLOCK () ถูกแทนที่ด้วย NOW () โดยฟังก์ชั่นอื่น ๆ ที่ไม่ได้กำหนดค่าไว้ไม่สามารถใช้เป็นอาร์กิวเมนต์ของฟังก์ชันที่กำหนดเองได้
Rubén
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.