Page 1 of 1

แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Mon Nov 21, 2016 4:22 pm
by trirongcop
:D ติดปํญหาเขียน Code vb ใน excel เมื่อเวลาทำการแทรกเซลล์ Row และ Column แล้ว ทำให้ Code vb เคลื่อนครับ
มีวิธีแก้ยังไงครับ
ตัวอย่างครับง
 Range("K70") = Range("E70") + Range("H70")

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Mon Nov 21, 2016 6:49 pm
by snasui
:D แนบไฟล์พร้อม Code ตัวอย่าง จะได้เข้าถึงปัญหาโดยไวครับ

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 10:11 am
by trirongcop
:D ไฟล์แนบครับ

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 7:29 pm
by snasui
:D จากตัวอย่างที่ยกมาใช้ Range Name เข้ามาช่วยได้ครับ

การสร้าง Range Name คลิกขวาที่ F4 > Define Name > ตั้งชื่อตามต้องการ

ยกตัวอย่างตั้งชื่อเซลล์ F4, G4, H4 เป็น Name0, Name1, Name2 ตามลำดับ

เมื่อสร้าง Range Name แล้วให้ปรับ Code เป็น

Code: Select all

Range("Name0") = Range("Name1") + Range("Name2")

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 7:40 pm
by trirongcop
อาจารย์ครับ ถ้าผมอ้างอิงทั้ง Column
ตัวอย่างครับ
Range("K70") = Range("E:E) + Range("H:H")
ต้องปรับยังไงครับ

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 7:46 pm
by snasui
:D การรวมใช้ Range("K70").Value = Application.Sum(Range("E:E)) + Application.Sum(Range("H:H")) ได้ครับ

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 7:56 pm
by trirongcop
อาจารย์ครับ แต่ถ้าเวลาผมแทรกเชลล์
มันก็เลื่อนเหมือนเดิมครับ
เวลาผมแทรกเชลล์ Column D มันก็จะเลื่อนการคำนวณครับ

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 8:13 pm
by snasui
:lol: ควรจะถามให้ครบถ้วน แจ้งสิ่งปัญหาที่เป็นและสิ่งที่ต้องการมาทั้งหมด จะได้ทราบว่าปัญหาคืออะไรต้องการคำตอบเป็นอย่างไร

ตัวอย่างควรแสดงให้เห็นถึงงานที่ใช้จริงครับ

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

หรือสามารถใช้ SpecialCells หาค่าที่ต้องการ เช่นหาตัวเลขในคอลัมน์ E ไมว่าจะมีค่าอยู่ตรงไหนมันก็หาได้ทั้งนั้นตามด้านล่างครับ

Code: Select all

Sub test0()
    Range("a1").Value = Application.Sum(Sheets(1).Range("e:e").SpecialCells(xlCellTypeConstants,1))
End Sub

Re: แทรก Cells แล้ว Code vb เคลื่อนครับ

Posted: Tue Nov 22, 2016 8:21 pm
by trirongcop
ขอบคุณอาจารย์มากครับ