Page 1 of 1

อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Wed Oct 03, 2018 1:14 am
by kubota
ผมลอง หา สูตร มาแล้ว แต่ไม่ได้ผล ครับ

Code: Select all

Sub RoundedRectangle1_Click()
    Dim rng As Range
    For Each rng In Sheets("Sheet1").Range("c3", "c9")
        If rng.Value = "" Then
            Selection.Delete Shift:=xlUp
        End If
    Next rng
End Sub

Re: อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Wed Oct 03, 2018 6:29 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub RoundedRectangle1_Click()
    Dim rng As Range
    Dim i As Integer
    For Each rng In Sheets("Sheet1").Range("c3", "c9")
        If rng.Value = "" Then
            rng.ClearContents
            i = i + 1
        End If
    Next rng
    If i > 0 Then
        Sheets("Sheet1").Range("c3", "c9") _
            .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End If
End Sub

Re: อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Thu Oct 04, 2018 11:55 am
by kubota
ขอบคูณมากครับ..แต่สูตรยังไม่ใช้ที่ตอบโจทย์ครับ
คืออยากลบ เฉพาะเซลล์ ที่อ้างอิง จาก คอลัม C ไม่ใช่ลบทั้งแถว

จากไฟล์ที่แนบ คือช่อง C7 กับ C9 ว่าง ที่นี้เวลาเรารัน Vba ให้ลบเฉพาะ เซลล์ที่ว่างกับคอลัมที่มีข้อมูลด้วย

ตัวอย่างนะครับ
เช่น C7 ว่าง ให้Vba ลบเซลล C7+D7 +E7 ครับ ไม่ใช่ลบทั้งแถว
ขอบคุณมากครับ

Re: อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Thu Oct 04, 2018 2:13 pm
by astalavista
ลองปรับเป็น

Code: Select all

Sub RoundedRectangle1_Click()
    Dim rng As Range
    For Each rng In Sheets("Sheet1").Range("C3:E9").Rows
        If Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(rng)), "") = "" Then
            rng.Delete shift:=xlUp
        End If
    Next
End Sub

Re: อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Thu Oct 04, 2018 3:24 pm
by kubota
astalavista wrote: Thu Oct 04, 2018 2:13 pm ลองปรับเป็น

Code: Select all

Sub RoundedRectangle1_Click()
    Dim rng As Range
    For Each rng In Sheets("Sheet1").Range("C3:E9").Rows
        If Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(rng)), "") = "" Then
            rng.Delete shift:=xlUp
        End If
    Next
End Sub
ใช้แล้วครับ ต้องการแบบนี้เลย ขอบคุณมากครับ

Re: อยากได้ Vba ลบค่าว่าง ในเซลล์ครับ

Posted: Thu Oct 04, 2018 11:54 pm
by snasui
kubota wrote: Thu Oct 04, 2018 11:55 am ขอบคูณมากครับ..แต่สูตรยังไม่ใช้ที่ตอบโจทย์ครับ
คืออยากลบ เฉพาะเซลล์ ที่อ้างอิง จาก คอลัม C ไม่ใช่ลบทั้งแถว

จากไฟล์ที่แนบ คือช่อง C7 กับ C9 ว่าง ที่นี้เวลาเรารัน Vba ให้ลบเฉพาะ เซลล์ที่ว่างกับคอลัมที่มีข้อมูลด้วย

ตัวอย่างนะครับ
เช่น C7 ว่าง ให้Vba ลบเซลล C7+D7 +E7 ครับ ไม่ใช่ลบทั้งแถว
ขอบคุณมากครับ
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub RoundedRectangle1_Click()
    Dim i As Integer, j As Integer
    With Sheets("Sheet1")
        j = .Range("c3", "c9").Rows.Count - 1
        For i = j To 0 Step -1
            If .Range("c3").Offset(i, 0).Value = "" Then
                .Range("c3").Offset(i, 0).Resize(1, 3).Delete shift:=xlUp
            End If
        Next i
    End With
End Sub