Page 1 of 1

สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 9:06 am
by titus
สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ
พอดีต้องแก้สูตรของ คน เก่าที่เขียนไว้

Cells(9 + rwIndex, 3).Select
ตัว rwIndex เป็นตัวแปรที่รับ ค่า เป็นตัวเลข ถ้า ค่า rwIndex = 0
ค่าสูตรจะได้ Cells(9 , 3).Select
ตำแหน่ง 9 คือ คอลัม ที่ 9 แถว ที่ 3 ใช่ไหม ครับ

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 10:17 am
by OnliezU
ค่าสูตรตามที่คุณเขียน Cells(9 , 3).Select จะอ่านเป็น เลือกเซลล์ใน (แถวที่ 9 ,คอลัมน์ที่ 3) ครับ

ถ้า default เลยก็จะเลือกเซลล์ที่ "C9" ครับ

อ้างอิงด้วยภาพเพิ่มเติมครับ :)
1150.jpg

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 10:47 am
by titus
OnliezU wrote: Fri Nov 02, 2018 10:17 am ค่าสูตรตามที่คุณเขียน Cells(9 , 3).Select จะอ่านเป็น เลือกเซลล์ใน (แถวที่ 9 ,คอลัมน์ที่ 3) ครับ

ถ้า default เลยก็จะเลือกเซลล์ที่ "C9" ครับ

อ้างอิงด้วยภาพเพิ่มเติมครับ :)
1150.jpg
ขอบคุณครับ :thup:

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 11:08 am
by titus
titus wrote: Fri Nov 02, 2018 10:47 am
OnliezU wrote: Fri Nov 02, 2018 10:17 am ค่าสูตรตามที่คุณเขียน Cells(9 , 3).Select จะอ่านเป็น เลือกเซลล์ใน (แถวที่ 9 ,คอลัมน์ที่ 3) ครับ

ถ้า default เลยก็จะเลือกเซลล์ที่ "C9" ครับ

อ้างอิงด้วยภาพเพิ่มเติมครับ :)
1150.jpg
ขอบคุณครับ :thup:
สอบถามเพิ่มเติมหน่อยครับ
Selection.AutoFill Destination:=Range(Chr(65) & Chr(68) & Trim(153) & ":" & Chr(65) & Chr(68) & Trim(153 + (qtyDate * 104) - 1)), Type:=xlFillDefault

คำสั่ง Selection.AutoFill Destination:=Range(.....), Type:=xlFillDefault คือคำสั่งลากสูตรมาตามช่องที่กำหนดใช่รึไม่ครับ

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 11:53 am
by OnliezU
titus wrote: Fri Nov 02, 2018 11:08 am
สอบถามเพิ่มเติมหน่อยครับ
Selection.AutoFill Destination:=Range(Chr(65) & Chr(68) & Trim(153) & ":" & Chr(65) & Chr(68) & Trim(153 + (qtyDate * 104) - 1)), Type:=xlFillDefault

คำสั่ง Selection.AutoFill Destination:=Range(.....), Type:=xlFillDefault คือคำสั่งลากสูตรมาตามช่องที่กำหนดใช่รึไม่ครับ
ตามที่ผมเข้าใจ น่าจะเป็นคำสั่งผู้เขียนที่ต้องการนำข้อมูลจากที่ใดที่หนึ่งมาลงใน Range(......) โดยใช้ format เดียวกัน

ซึ่งผมคิดว่าแนบไฟล์มาด้วยจะดีกว่านะครับ อีกหลายๆ คนจะได้ช่วยเหลือได้ครับ

https://docs.microsoft.com/en-us/office ... e.autofill << อ้างอิงคำสั่ง autofill

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Fri Nov 02, 2018 1:35 pm
by titus
OnliezU wrote: Fri Nov 02, 2018 11:53 am
titus wrote: Fri Nov 02, 2018 11:08 am
สอบถามเพิ่มเติมหน่อยครับ
Selection.AutoFill Destination:=Range(Chr(65) & Chr(68) & Trim(153) & ":" & Chr(65) & Chr(68) & Trim(153 + (qtyDate * 104) - 1)), Type:=xlFillDefault

คำสั่ง Selection.AutoFill Destination:=Range(.....), Type:=xlFillDefault คือคำสั่งลากสูตรมาตามช่องที่กำหนดใช่รึไม่ครับ
ตามที่ผมเข้าใจ น่าจะเป็นคำสั่งผู้เขียนที่ต้องการนำข้อมูลจากที่ใดที่หนึ่งมาลงใน Range(......) โดยใช้ format เดียวกัน

ซึ่งผมคิดว่าแนบไฟล์มาด้วยจะดีกว่านะครับ อีกหลายๆ คนจะได้ช่วยเหลือได้ครับ

https://docs.microsoft.com/en-us/office ... e.autofill << อ้างอิงคำสั่ง autofill
ได้ ครับ อาจจะไม่ละเอียดเท่าไร ผมพยามศึกษาสูตรที่คนเก่าเขียนไว้อยู่อาจจะมีพลาดบางครับ ไฟล์เก่ามีขนาดใหญ่มาก

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Sat Nov 03, 2018 10:43 am
by snasui
:D ไฟล์ที่แนบมาต้องการจะทำอะไร ปัญหาคืออะไร ต้องการคำตอบเป็นอย่างไร กรุณาอธิบายมาด้วยพอสังเขปในช่องความเห็นนี้ด้วยครับ

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Sat Nov 03, 2018 11:55 am
by titus
snasui wrote: Sat Nov 03, 2018 10:43 am :D ไฟล์ที่แนบมาต้องการจะทำอะไร ปัญหาคืออะไร ต้องการคำตอบเป็นอย่างไร กรุณาอธิบายมาด้วยพอสังเขปในช่องความเห็นนี้ด้วยครับ
คือในไฟล์ ต้องการเพิ่มเครื่องจาก 13 เครื่อง เป็น 18 เครื่องครับ
แล้วจะมีการลบช่องออก 3 ช่อง แล้วเพิ่ม ช่อง อีก1 ช่อง ด้าน หลัง และแก้ตัวหาร และเพิ่มสูตรอีก มันค่อนข้างจะสับสนครับ
ผมเลยอยากขอความหมายของสูตร มาพยามแก้ปัญหาเองจะดีกว่าครับ ที่ผมแนบไฟล์มาเพื่อเพื่อนๆ จะได้เข้าไป ดู ไฟล์ต้นฉับบ ว่าคนเขียนชุดก่อน เค้าต้องการอะไร

อย่างเช่น ตอนนี้ ผมติดคำสั่ง

Code: Select all

 Selection.AutoFill Destination:=Range(Chr(65) & Chr(68) & Trim(153) & ":" & Chr(65) & Chr(68) & Trim(153 + (qtyDate * 104) - 1)), Type:=xlFillDefault
ผมอยากรู้ทีมาที่ไป ครับ ว่า คำสั่งSelection.AutoFill Destinationสั่งให้ทำอะไรในช่อง AD153:AD880
คือ จากการลอง กด F8 รันคำสั่งดู เหมือนว่าจะสั่ง ให้ copy ค่าใน Cell AD153 ลงมาใช่รึปล่าวครับ
อาจจะถามบ่อยหน่อยครับอาจารย์ :D :D

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Sat Nov 03, 2018 12:12 pm
by snasui
:D เป็นการคัดลอกสูตรจาก AD153 ลงไปด้านล่างครับ

Chr(65) คือ A
Chr(68) คือ D
Trim(153) คือเลข 153

Code พวกนี้ควรเขียนเสียใหม่ให้ง่ายต่อการทำความเข้าใจ เช่น

Code: Select all

Range("AD153").AutoFill Destination:=Range("AD153").Resize(qtyDate * 104), Type:=xlFillDefault
เป็นต้น

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Sat Nov 03, 2018 5:25 pm
by titus
snasui wrote: Sat Nov 03, 2018 12:12 pm :D เป็นการคัดลอกสูตรจาก AD153 ลงไปด้านล่างครับ

Chr(65) คือ A
Chr(68) คือ D
Trim(153) คือเลข 153

Code พวกนี้ควรเขียนเสียใหม่ให้ง่ายต่อการทำความเข้าใจ เช่น

Code: Select all

Range("AD153").AutoFill Destination:=Range("AD153").Resize(qtyDate * 104), Type:=xlFillDefault
เป็นต้น
ใช่ครับ อ่านยากมาก T T ขอบคุณครับ อาจารย์ :thup: :thup:

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Tue Nov 06, 2018 11:51 am
by titus
สอบถามสูตรตัวนี้หน่อยครับ
Range(Chr(65) & Trim(151) & ":" & Chr(66) & Trim(153 + (qtyDate * 104) - 1)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"A7:B140"), Unique:=True
จะเขียน rezize ไปไปแทน แต่ตัวหน้าไม่เหมือนกันจะต้องเขียนยังไงครับ
ผมเขียนได้ประมาณนี้ ถูกไหมครับ
Range("A151":"B").Resize(qtyDate * 104 - 1).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"A7:B140"), Unique:=True

Re: สอบถามความหมายของ คำสั้ง Cell ใน vb ครับ

Posted: Tue Nov 06, 2018 2:01 pm
by puriwutpokin
ลองปรับตรงนี้ดูครับ

Code: Select all

Range("A151").offset(0,1).Resize(qtyDate * 104 - 1)