Note: The other languages of the website are Google-translated. Back to English
English English

วิธีทำให้ตารางขยายได้โดยการแทรกแถวตารางในแผ่นงานที่มีการป้องกันใน Excel

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

ทำให้ตารางขยายได้โดยการแทรกแถวตารางในแผ่นงานที่มีการป้องกันด้วยรหัส VBA


ทำให้ตารางขยายได้โดยการแทรกแถวตารางในแผ่นงานที่มีการป้องกันด้วยรหัส VBA


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

1 คลิก ผู้พัฒนา > สิ่งที่ใส่เข้าไป > ปุ่ม (การควบคุมแบบฟอร์ม) เพื่อแทรกไฟล์ การควบคุมแบบฟอร์ม ลงในแผ่นงานของคุณ

2. ในการโผล่ขึ้นมา กำหนดมาโคร ใหคลิกปุ the ม ใหม่ ปุ่ม

3 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน โปรดคัดลอกและวางรหัส VBA ด้านล่างระหว่างไฟล์ และ ย่อยสิ้นสุด ย่อหน้าใน รหัส หน้าต่าง

รหัส VBA: ทำให้ตารางขยายได้โดยการแทรกแถวตารางในแผ่นงานที่มีการป้องกัน

 'Update by ExtendOffice 20220826
    Dim xRg, tableRg As Range
    Dim xRowCount As Integer
    Dim pswStr As String
    pswStr = "123"
    On Error Resume Next
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:=pswStr

    Set tableRg = ActiveSheet.ListObjects("Table4").Range
    xRowCount = tableRg.Rows.Count
    
    Set xRg = Range("Table4[[#Headers],[Total]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault

    ActiveSheet.Protect Password:=pswStr, DrawingObjects:=False, _
                    Contents:=True, Scenarios:=False, _
                    AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, AllowInsertingColumns:=True, _
                    AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
                    AllowDeletingColumns:=True, AllowDeletingRows:=True, _
                    AllowSorting:=True, AllowFiltering:=True, _
                    AllowUsingPivotTables:=True
    Application.ScreenUpdating = True

หมายเหตุ:

1). ในรหัสหมายเลข“ 123” คือรหัสผ่านที่คุณจะใช้เพื่อป้องกันแผ่นงาน
2). โปรดเปลี่ยนชื่อตารางและชื่อคอลัมน์ที่มีสูตรที่คุณจะป้องกัน

4 กด อื่น ๆ + Q ปุ่มเพื่อปิดหน้าต่าง Microsoft Visual Basic for Applications

5. เลือกเซลล์ในตารางที่คุณต้องการกำหนดข้อมูลใหม่ยกเว้นคอลัมน์สูตรจากนั้นกดปุ่ม Ctrl + 1 คีย์เพื่อเปิด จัดรูปแบบเซลล์ กล่องโต้ตอบ ใน จัดรูปแบบเซลล์ กล่องโต้ตอบยกเลิกการเลือก ล็อค จากนั้นคลิกที่ไฟล์ OK ปุ่ม. ดูภาพหน้าจอ:

6. ตอนนี้ปกป้องแผ่นงานของคุณด้วยรหัสผ่านที่คุณระบุไว้ในรหัส VBA

จากนี้ไปหลังจากคลิกปุ่ม Form Control ในแผ่นงานที่มีการป้องกันของคุณตารางจะขยายได้โดยการแทรกแถวใหม่ตามภาพด้านล่างที่แสดง

หมายเหตุ: คุณสามารถแก้ไขตารางยกเว้นคอลัมน์สูตรในแผ่นงานที่มีการป้องกัน


บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (18)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ดังนั้นฉันจึงลองทำสิ่งนี้ แต่มันเพิ่มแถวใหม่ที่ด้านล่างของสมุดงานในบรรทัด 1048576 อย่างไรก็ตาม ตารางของฉันมีเพียง 800 ระเบียนเท่านั้น ฉันไม่รู้ว่าทำไมมันถึงทำเช่นนี้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี บรินดี
รหัสได้รับการอัปเดตพร้อมแก้ปัญหาแล้ว โปรดลองและขอขอบคุณสำหรับความคิดเห็นของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคริสตัล ปัญหาเดียวกัน ฉันสร้างตารางใหม่ให้ตัวเองโดยมีเพียง 2 แถวเท่านั้น เมื่อฉันคลิกปุ่ม รายการจะถูกขยายจนถึงท้ายตารางโดยไม่ต้องเพิ่มแถวใดๆ ควรบวกกับแถวที่ 3
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคริสตัล ปัญหาเดียวกัน ฉันสร้างตารางใหม่ให้ตัวเองโดยมีเพียง 2 แถวเท่านั้น เมื่อฉันคลิกปุ่ม รายการจะถูกขยายจนถึงท้ายตารางโดยไม่ต้องเพิ่มแถวใดๆ ควรบวกกับแถวที่ 3
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลองใช้รหัส Vba นี้เพื่อเพิ่มบรรทัดใหม่ใน table

ย่อย Tab_Line_Add()
Dim pswStr เป็นสตริง
pswStr = "123"
เกี่ยวกับข้อผิดพลาดต่อไป
Application.ScreenUpdating = เท็จ
ActiveSheet.Unprotect รหัสผ่าน:=pswStr
ActiveSheet.Range("D8") เลือก
'D8 เป็นส่วนหัวของตาราง
ช่วง("Table1[[#Headers],[Total]]") เลือก
Selection.End(xlDown).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
ActiveSheet.Protect รหัสผ่าน:=pswStr

ย่อยสิ้นสุด
.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีแม็ค
ขอบคุณที่แชร์กัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช้คำแนะนำ (Selection.ListObject.ListRows.Add AlwaysInsert:=False) แก้ไขปัญหาที่คล้ายกันสำหรับฉันด้วยโค้ดต้นฉบับ โดยที่แถวเต็มใหม่ (ขยายเซลล์ที่มีสูตรอยู่) จะไม่ถูกเพิ่มลงในตารางในขนาดที่กว้างกว่ามาก ตาราง 51 คอลัมน์ ขอบคุณมากสำหรับการแบ่งปันและแก้ไข Mac
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันใช้รหัสข้างต้นและได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
"การเรียกใช้โค้ดถูกขัดจังหวะ" เมื่อฉันคลิกที่ Debug บรรทัดที่ 20 "Selection.ClearContents" จะถูกเน้น

เมื่อฉันป้อนรหัสครั้งแรก มันทำงานอย่างถูกต้อง

ฉันเปลี่ยน "ตาราง" เป็นชื่อของตารางและเปลี่ยนคอลัมน์เป็นชื่อของคอลัมน์ที่ฉันใช้ ฉันยังเปลี่ยน "Selection.Offset (x,-x).Select" เพื่อให้ตรงกับความต้องการของฉัน


ข้อเสนอแนะใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,

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

มันบอกฉันว่ารหัสผ่านไม่ถูกต้อง และรหัสก็หายไป .
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Merhaba Tablo ismini ve satır başlangıc yerlerini değiştirdiğim zaman kod çalışmıyor ลานımcı olurmusunuz
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนชื่อตารางและส่วนหัวของคอลัมน์เดียวกันในโค้ด
ฉันเปลี่ยนชื่อตารางและส่วนหัวของคอลัมน์เพื่อทดสอบโค้ดแล้ว และใช้งานได้ดี
คุณได้รับข้อความแจ้งข้อผิดพลาดหรือไม่? ฉันต้องการทราบเฉพาะเจาะจงมากขึ้นเกี่ยวกับปัญหาของคุณ เช่น เวอร์ชัน Excel ของคุณ ยิ่งคุณอธิบายข้อผิดพลาดมากเท่าไหร่ เราก็ยิ่งเข้าใจและแก้ไขได้เร็วเท่านั้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะสร้างปุ่มเพื่อลบเส้นได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี !!!
Tengo una tabla donde más de อูนา คอลัมนา está protegida.
La tabla tiene 17 columnas de las cuales 7 deben quedar bloqueadas porque poseen สูตร.
Mi tabla arranca en เซลด้า A4

Estaba tratando de usar este código para probarlo, cambiando lo que verán abajo como "CLAVE", "MITABLA" และ "AVISO 1" สำหรับชื่อเฉพาะ:
Donde "AVISO 1" สอดคล้องกับ una de las columnas que está protegida

Dim pswStr เป็นสตริง
'อัพเดทโดย ExtendOffice 20181106
pswStr = "แคลฟ"
เกี่ยวกับข้อผิดพลาดต่อไป
Application.ScreenUpdating = เท็จ
ActiveSheet.Unprotect รหัสผ่าน:=pswStr
ActiveSheet.Range("A4") เลือก
ช่วง("MITABLA[[#Headers],[AVISO 1]]") เลือก
Selection.End(xlDown).Select
Selection.Offset(1, -16).Select
ActiveCell.FormulaR1C1 = "ใหม่"
ActiveSheet.Protect รหัสผ่าน:=pswStr, DrawingObjects:=False, _
เนื้อหา:=จริง, สถานการณ์:=เท็จ, _
AllowFormattingCells:=จริง, AllowFormattingColumns:=จริง, _
AllowFormattingRows:=จริง, AllowInsertingColumns:=จริง, _
AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=จริง, AllowDeletingRows:=จริง, _
AllowSorting:=True, AllowFiltering:=จริง, _
AllowUsingPivotTables:=จริง
Selection.ClearContents
Application.ScreenUpdating = จริง

Lo que está haciendo el código tal cual como lo escribo es que en lugar de agregar una nueva línea a mi tabla, está colocando la palabra "new" en la última celda contenido de la columna "AVIS 1".

Surgen ดึงดูด 2 dudas:
1. ¿cómo podría hacer para determinar más de una columna protegida?
2. ¿por qué está haciendo esto el código definido?

Agradezco de antemano que me puedan ayudar! เอสตาเร อะเทนตา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีไดน่า
1. หากคอลัมน์สูตร 7 คอลัมน์ที่คุณต้องการป้องกันอยู่ในตารางต่อเนื่องกัน
ตัวอย่างเช่น ส่วนหัวของคอลัมน์คือ gg, hh, ii, jj, kk, ll, mm ตามที่แสดงในภาพหน้าจอด้านล่าง คุณสามารถใช้รหัส VBA ต่อไปนี้เพื่อดำเนินการให้เสร็จสิ้น
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/table.png
ในบรรทัดนี้ ตั้งค่า xRg = Range("Table3[[#Headers],[gg]:[mm]]") ออฟเซ็ต (1, 0) ในโค้ดต่อไปนี้ คุณเพียงแค่ใส่ส่วนหัวของคอลัมน์แรกและคอลัมน์สุดท้าย
Sub Button1_Click()
 'Update by ExtendOffice 20220826
    Dim xRg, tableRg As Range
    Dim xRowCount As Integer
    Dim pswStr As String
    pswStr = "123"
    On Error Resume Next
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:=pswStr

    'Change the table name and the column headers
    Set tableRg = ActiveSheet.ListObjects("Table3").Range
    xRowCount = tableRg.Rows.Count
    
     Set xRg = Range("Table3[[#Headers],[gg]:[mm]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, xRg.Columns.Count)

    xRg.Resize(xRowCount - 1, xRg.Columns.Count).AutoFill Destination:=yRg, Type:=xlFillDefault
    

    ActiveSheet.Protect Password:=pswStr, DrawingObjects:=False, _
                    Contents:=True, Scenarios:=False, _
                    AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, AllowInsertingColumns:=True, _
                    AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
                    AllowDeletingColumns:=True, AllowDeletingRows:=True, _
                    AllowSorting:=True, AllowFiltering:=True, _
                    AllowUsingPivotTables:=True
    Application.ScreenUpdating = True
End Sub

2. หากคอลัมน์สูตร 7 คอลัมน์ที่คุณต้องการป้องกันไม่ต่อเนื่องในตาราง ใช้รหัสต่อไปนี้ ในโค้ด คุณต้องป้อนส่วนหัวของคอลัมน์ด้วยตนเองทีละรายการ
Sub Button1_Click()
 'Update by ExtendOffice 20220826
    Dim xRg, tableRg As Range
    Dim xRowCount As Integer
    Dim pswStr As String
    pswStr = "123"
    On Error Resume Next
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:=pswStr

    'Change the table name and the column headers
    Set tableRg = ActiveSheet.ListObjects("Table3").Range
    xRowCount = tableRg.Rows.Count
    
    Set xRg = Range("Table3[[#Headers],[gg]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
    Set xRg = Range("Table3[[#Headers],[hh]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
    Set xRg = Range("Table3[[#Headers],[ii]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
    Set xRg = Range("Table3[[#Headers],[jj]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
    Set xRg = Range("Table3[[#Headers],[kk]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
     Set xRg = Range("Table3[[#Headers],[ll]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
    Set xRg = Range("Table3[[#Headers],[mm]]").Offset(1, 0)
    Set yRg = xRg.Resize(xRowCount, 1)
    xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault

    ActiveSheet.Protect Password:=pswStr, DrawingObjects:=False, _
                    Contents:=True, Scenarios:=False, _
                    AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, AllowInsertingColumns:=True, _
                    AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
                    AllowDeletingColumns:=True, AllowDeletingRows:=True, _
                    AllowSorting:=True, AllowFiltering:=True, _
                    AllowUsingPivotTables:=True
    Application.ScreenUpdating = True
End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

ขอบคุณสำหรับการแบ่งปัน. แม้ว่าฉันจะมีคำถาม... โดยใช้โค้ดด้านบนนี้ ฉันสามารถเพิ่มทีละแถวได้ วิธีเพิ่มหลายแถวในคลิกเดียว?

ขอบคุณล่วงหน้า

'อัพเดทโดย ExtendOffice 20220826
Dim xRg, tableRg เป็นช่วง
Dim xRowCount เป็นจำนวนเต็ม
Dim pswStr เป็นสตริง
pswStr = "123"
เกี่ยวกับข้อผิดพลาดต่อไป
Application.ScreenUpdating = เท็จ
ActiveSheet.Unprotect รหัสผ่าน:=pswStr

ตั้งค่า tableRg = ActiveSheet.ListObjects("Table4")).Range
xRowCount = tableRg.Rows.Count

ตั้งค่า xRg = ช่วง("Table4[[#Headers],[Total]]") ออฟเซ็ต (1, 0)
ตั้งค่า yRg = xRg.Resize(xRowCount, 1)
xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg ประเภท:=xlFillDefault

ActiveSheet.Protect รหัสผ่าน:=pswStr, DrawingObjects:=False, _
เนื้อหา:=จริง, สถานการณ์:=เท็จ, _
AllowFormattingCells:=จริง, AllowFormattingColumns:=จริง, _
AllowFormattingRows:=จริง, AllowInsertingColumns:=จริง, _
AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=จริง, AllowDeletingRows:=จริง, _
AllowSorting:=True, AllowFiltering:=จริง, _
AllowUsingPivotTables:=จริง
Application.ScreenUpdating = จริง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัสไม่ทำงาน
ผิดพลาดหลายอย่าง

Dim xRg, tableRg As Range

xRg
เป็นตัวแปรไม่ใช่ช่วง

yRg
ไม่ประกาศเลย

Set xRg = Range("Table4[[#Headers],[Total]]").Offset(1, 0)

ข้อผิดพลาดรันไทม์1004
เมื่อฉันนำ TOTAL ออกไป มันได้ผล
มันไม่ทำงานกับแถวผลรวมที่แสดงและเมื่อฉันซ่อนแถวทั้งหมดในริบบิ้น

โดยปกติเว็บไซต์ของคุณจะดีมาก แต่บทความนี้ต้องการการปรับปรุง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีเปรม
คุณต้องตรวจสอบให้แน่ใจว่าชื่อตารางและส่วนหัวของคอลัมน์ที่ระบุในโค้ดตรงกับชื่อตารางและส่วนหัวของคอลัมน์ในเวิร์กชีต เพื่อหลีกเลี่ยงข้อผิดพลาด 1004 คุณอาจต้องเปิดใช้งาน เชื่อถือการเข้าถึงโมเดลวัตถุโปรเจ็กต์ VBA ใน Excel ของคุณ: คลิก เนื้อไม่มีมัน > Options > ศูนย์ความเชื่อถือ > การตั้งค่าศูนย์ความเชื่อถือ > การตั้งค่ามาโคร > แล้วตรวจสอบ เชื่อถือการเข้าถึงโมเดลวัตถุโครงการ VBA กล่อง.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Sub ButtonOut_Click()

Dim PswS เป็นสตริง
PswStr = "54321"

เกี่ยวกับข้อผิดพลาดต่อไป

Application.ScreenUpdating = เท็จ
ActiveSheet.Unprotect รหัสผ่าน:=PswStr

ActiveSheet.ListObjects("Table1").ListRows.Add

ActiveSheet ป้องกันรหัสผ่าน:=PswStr
Application.ScreenUpdating = จริง

ย่อยสิ้นสุด
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ