EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
Sub answerYesNO()
Dim answer As Long
With ActiveSheet
answer = MsgBox("Clear?", vbYesNo + vbQuestion, "data")
If answer = vbYes Then
LastRow = .Range("b" & .Rows.Count).End(xlUp).Row
LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range("b1" & LastRow & LastColumn).ClearContents
Else
End If
End With
End Sub
Code: Select all
LastRow = .Range("b" & .Rows.Count).End(xlUp).Row
LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range("b1" & LastRow & LastColumn).ClearContents
.Range("b1" & LastRow & LastColumn).ClearContents
เป็น .Range("b1").Resize(lastrow, lastcolumn).ClearContents
snasui wrote:ตัวอย่างการปรับ Code ตามด้านล่างครับ
เปลี่ยน.Range("b1" & LastRow & LastColumn).ClearContents
เป็น.Range("b1").Resize(lastrow, lastcolumn).ClearContents
Code: Select all
Sub answerYesNO()
Dim answer As Long
With ActiveSheet
answer = MsgBox("Clear?", vbYesNo + vbQuestion, "data")
If answer = vbYes Then
lastrow = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
lastcolumn = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
.Range("b1").Resize(lastrow, lastcolumn).ClearContents
Else
End If
End With
End Sub
niwat2811 wrote:กรณีที่ Rows หรือ Columns เป็นแบบไดนามิกลองปรับแบบนี้ดูครับว่าใช้ได้ตามต้องการไหมCode: Select all
Sub answerYesNO() Dim answer As Long With ActiveSheet answer = MsgBox("Clear?", vbYesNo + vbQuestion, "data") If answer = vbYes Then lastrow = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row lastcolumn = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column .Range("b1").Resize(lastrow, lastcolumn).ClearContents Else End If End With End Sub
Code: Select all
lastrow = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
Code: Select all
lastcolumn = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
niwat2811 wrote:ขอโทษครับน่าจะตก . ไปตัว สำหรับ Code ผมลองใช้กับเครื่องผมแล้วก็ไม่ติด error นะครับ
ยังไงคงต้องรอผู้รู้ท่านอื่นช่วยตอบแล้วครับ
Totem wrote:snasui wrote:ตัวอย่างการปรับ Code ตามด้านล่างครับ
เปลี่ยน.Range("b1" & LastRow & LastColumn).ClearContents
เป็น.Range("b1").Resize(lastrow, lastcolumn).ClearContents
ปรับแล้วลบข้อมูลได้ แต่ ลบไปถึง column AG ไม่สามารถลบไปไม่ถึง LastColumn AP ครับ
Code: Select all
Cells.ClearContents
Code: Select all
ActiveSheet.UsedRange.ClearContents
Code: Select all
Dim answer As Long
With ActiveSheet
answer = MsgBox("Clear?", vbYesNo + vbQuestion, "data")
If answer = vbYes Then
.UsedRange.ClearContents
End If
End With
snasui wrote:Totem wrote:snasui wrote:ตัวอย่างการปรับ Code ตามด้านล่างครับ
เปลี่ยน.Range("b1" & LastRow & LastColumn).ClearContents
เป็น.Range("b1").Resize(lastrow, lastcolumn).ClearContents
ปรับแล้วลบข้อมูลได้ แต่ ลบไปถึง column AG ไม่สามารถลบไปไม่ถึง LastColumn AP ครับ
หากต้องการลบข้อมูลทั้งชีทให้ใช้
หรือหากต้องการลบเฉพาะเฉพาะช่วงข้อมูลที่เคยใช้งานให้ใช้Code: Select all
Cells.ClearContents
ตัวอย่างCode: Select all
ActiveSheet.UsedRange.ClearContents
Code: Select all
Dim answer As Long With ActiveSheet answer = MsgBox("Clear?", vbYesNo + vbQuestion, "data") If answer = vbYes Then .UsedRange.ClearContents End If End With