อนุญาตให้ผู้ใช้ยกเลิกการซ่อน (รูปแบบ) คอลัมน์ที่เลือกเท่านั้น


5

TL; DR สิ่งที่ฉันต้องการบรรลุ:

  • ซ่อนบางคอลัมน์ที่ฉันไม่ต้องการให้ใครเห็น (ทำเครื่องหมาย)
  • ซ่อนบางคอลัมน์ที่ฉันต้องการให้ผู้ใช้บางคนเห็น (ทำเครื่องหมาย)
  • ตั้งรหัสผ่านแยกต่างหากสำหรับทั้งสองกลุ่มคอลัมน์ (หนึ่งฉันจะไม่เปิดเผยและอื่น ๆ ฉันจะเปิดเผยให้กับผู้ใช้ที่เลือก) (ยกเลิกการเลือก)

แต่ปัญหาคือ:

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

เรื่องเต็ม:

ฉันมีไฟล์ excel ที่ฉันต้องการแชร์ มีคอลัมน์ที่ซ่อนอยู่ซึ่งฉันไม่ต้องการให้ใครซ่อนตัว แต่ในอีกทางหนึ่งมี 2 คอลัมน์ที่ฉันต้องการได้รับการปกป้องในแบบที่ผู้ใช้บางคนสามารถดู (ยกเลิกการซ่อน) พวกเขาได้

ฉันขุดลงในแผ่นป้องกันให้ผู้ใช้สามารถเข้าถึงช่วง ฯลฯ แต่ฉันไม่สามารถจัดการเพื่อหาวิธีการแก้ปัญหาการซ่อนคอลัมน์ / ซ่อนตัว

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

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

BTW ฉันใช้ Excel 2007


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

คำตอบ:


2

ฉันต้องการวางเซลล์ที่ซ่อนอยู่ในแผ่นงานอื่นและป้องกันผ่าน VBA เช่น:

Sheets("sheet4").Visible = xlVeryHidden หรือ

Worksheets("sheet1").protect "Password", UserInterfaceOnly:=True หรือ

ActiveSheet.protect "Password", AllowFormattingRows:=True, AllowFormattingColumns:=True

หรือวิธีอื่น ๆ xlveryhiddenเป็นจุดเริ่มต้นที่ดีจากนั้นล็อค UI และเข้าถึง VBA


0

ฉันมีปัญหาที่คล้ายกันและใช้การจัดกลุ่มข้อมูลเพื่อแยกแถวที่จัดกลุ่ม (ซึ่งฉันอนุญาตให้ผู้ใช้ขยาย) และแถวที่ซ่อนอยู่ (ซึ่งไม่สามารถถูกซ่อน) การป้องกันชีตโดยไม่อนุญาตให้ผู้ใช้จัดรูปแบบผลลัพธ์ในแถวที่ซ่อนซึ่งไม่สามารถถูกซ่อนได้ การขยายตัวของการจัดกลุ่มคอลัมน์ได้รับอนุญาตผ่านรหัสต่อไปนี้:

Dim wSheet as Worksheet

For Each wSheet In ThisWorkbook.Worksheets
      wSheet.Protect Password:="Password", UserInterFaceOnly:=True
      wSheet.EnableOutlining = True
Next
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.