Page 1 of 1

หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 2:38 pm
by Godtheking
ในสูตรมี SQL ควบคู่นะครับ ก่อนใช้ต้อง เข้า Tools-->References-->Microsoft ActiveX Data Objects 2.6 Library ด้วยนะครับ :) :)
สูตร VBA การเก็บค่าต่างๆ จาก Range AN ทั้งหมดที่มีการเปลี่ยนแปลง เพื่อทำการบันทึกข้อมูล
VBA ที่ผมเขียนขึ้นมานั้น จะเก็บค่าแค่ ที่เรากำหนด เช่น AN3 แค่ AN3 อย่างเดี่ยว
แต่ผมให้ทำการเก็บค่าเฉพาะ Range ที่มีการเปลี่ยนแปลง เอาเฉพาะ AN มีข้อมูลเปลี่ยนแปลง
เมือผมทำการ Filter หาข้อมูลอื่นแล้วเพิ่มข้อมูลเข้าเดียวช่อง AN จะเปลี่ยนเเปลงข้อมูลช่องอื่นก็ด้วย
ผมเลยไม่อยากจับแค่ AN3 อย่างเดี่ยวครับ
ถ้าช่อง AN ช่องไหนเปลี่ยนแปลงก็ให้เก็บข้อมูลช่อง AN ที่เปลี่ยนแปลงไปยังอีก Sheet ที่ผมทำการเขียน VBA
ไว้แล้วครับ
สิ่งที่ผมอย่างได้ทั้งหมดคือ
ผมให้ B3,C3,D3,E3,AN3,AQ3,AR3,AV3,AW3 ให้เปลี่ยน 3 ทุกครั้งที่ มีการแก้ไขครับ
ถ้าช่อง AN3 --> AN5 ก็ให้ทั้งหมดเปลี่ยนเป็น 5 ตามทั้งหมดครับ

Re: หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 2:53 pm
by snasui
:D อ่านแล้วไม่เข้าใจกรุณาอธิบายมาใหม่อีกรอบครับ
Godtheking wrote: Sun Mar 12, 2023 2:38 pm ในสูตรมี SQL ควบคู่นะครับ ก่อนใช้ต้อง เข้า Tools-->References-->Microsoft ActiveX Data Objects 2.6 Library ด้วยนะครับ
หากในไฟล์ตัวอย่างได้ติดตั้งมาแล้วมันจะใช้ได้เสมอไป ผู้ตอบไม่จำเป็นต้องไปติดตั้งเข้าไปใหม่ครับ

กรุณาอธิบายขั้นตอนการทำงานว่าลักษณะการทำงานเป็นอย่างไร นำค่าใดไปแสดงที่ใด ด้วยเงื่อนไขใด ปัจจุบันติดปัญหาใด จะได้สะดวกในการทำความเข้าใจครับ

จาก
Godtheking wrote: Sun Mar 12, 2023 2:38 pm สูตร VBA การเก็บค่าต่างๆ จาก Range AN ทั้งหมดที่มีการเปลี่ยนแปลง เพื่อทำการบันทึกข้อมูล
เปลี่ยนแปลงโดยใคร โดยโปรแกรมหรือว่าโดยคนทำการเปลี่ยนด้วยมือ ลองยกตัวอย่างการเปลี่ยนแปลงดังกล่าวว่าเปลี่ยนจากค่าใดเป็นค่าใด เมื่อเปลี่ยนแล้วต้องการให้แสดงผลอย่างไร ฯลฯ ครับ

Re: หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 3:24 pm
by Godtheking
คือแบบว่าผมเพิ่มข้อมูลต่างๆที่ Column J3:AM3 แล้ว AN3 จะคำนวณสูตรออกมาครับ
แต่ถ้าเป็น Column J10:AM20 แล้ว AN20 จะคำนวณสูตรออกมาครับแล้วผมจะกดบันทึกข้อมูลโดยการรัน VBA ครับ ผมเลยอยากให้ VBA บันทึกข้อมูลของ Column AN20 ครับ โดยเราไม่ต้องเป็นทำอะไรกับสูตรครับ
ถ้าเปลี่ยนเป็น Column J15:AM15 แล้ว AN15 จะเปลี่ยนและรัน VBA ให้บันทึกของ AN15 เองครับ

Re: หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 3:41 pm
by snasui
:D อ่านแล้วเข้าใจว่าต้องการเก็บค่าบรรทัดที่มีการทำงานเอาไว้ใช้งานต่อ

สำหรับการเก็บค่าว่าได้ทำงานกับบรรทัดไหนสามารถนำ Code นี้ไปในชีต Small ได้ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Row >= 3 And Target.Column <= Me.Cells(1, "am").Column Then
        Me.Range("ay1").Value = Target.Row
    End If
    Application.EnableEvents = True
End Sub
ค่าบรรทัดจะแสดงในเซลล์ AY1 ของชีต Small สามารถนำค่านี้ไปกำหนดให้กับ Code อื่น ๆ ได้ตามสะดวกครับ

Re: หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 4:00 pm
by Godtheking
ใช้ครับเก็บค่าของบรรทัดนั้นและทำการบันทึกข้อมูลของบรรทัดนั้นไปไว้ใน Sheet Pivot ครับ
โดยใช้สูตร VBA Module 2 ครับ :)

Re: หาสูตร VBA ที่เก็บ Range ต่างๆ

Posted: Sun Mar 12, 2023 4:04 pm
by snasui
:D ถ้าเป็นเช่นนั้นก็ลองเขียนมาตามแนวทางนี้ ติดตรงไหนค่อยนำ Code นั้นมาถามกันต่อครับ