:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#1

Post by zonewar123 »

Code: Select all

Private Sub CommandButton1_Click()
'Sheet7.Activate
lastrow = Cells(Rows.Count, 3).End(xlUp).Row
 With Range("c1:c" & lastrow)
    Set c = .Find(TextBox1.Text, LookIn:=xlValues)

If TextBox1.Text = "" Then
    
    MsgBox "¡ÃسҡÃÍ¡¢éÍÁÙÅ", 0, "¡ÃسҡÃÍ¡¢éÍÁÙÅ"

ElseIf Not c Is Nothing Then
    'Sheet7.Activate
    c.Offset(0, 2).Value = c.Offset(0, 2).Value + TextBox2.Value
    MsgBox "ÁÕÊÔ¹¤éÒÍÂÙèáÅéǺ͡¨Ó¹Ç¹à¾ÔèÁä»ÍÕ¡ :" & TextBox2.Value
    Do
    l = l + 1
    Loop Until Cells(l, 1) = ""
    'Sheet7.Cells(l, 1) = l - 1
    MsgBox "ww"
    'Cells(l, 2) = TextBox5.Value
    'Cells(l, 3) = TextBox1.Text
    'Cells(l, 4) = ComboBox1.Text
    'Cells(l, 5) = TextBox2.Value
    'Cells(l, 6) = ComboBox2.Text
    'Cells(l, 7) = TextBox3.Text
Else
    'Sheet5.Activate
    'Do
    'l = l + 1
    'Sheet7.Cells(l, 1) = l - 1
     MsgBox "ss"
    'Loop Until Cells(l, 1) = ""
    'Cells(l, 1) = l - 1
    'Cells(l, 2) = TextBox5.Value
    'Cells(l, 3) = TextBox1.Text
   ' Cells(l, 4) = ComboBox1.Text
    'Cells(l, 5) = TextBox2.Value
    'Cells(l, 6) = ComboBox2.Text
    'Cells(l, 7) = TextBox3.Text
    'Sheet7.Activate
    'Do
    'Loop Until Cells(l, 1) = ""
    'Cells(l, 1) = l - 1
    'Cells(l, 2) = TextBox5.Value
   ' Cells(l, 3) = TextBox1.Text
    'Cells(l, 4) = ComboBox1.Text
    'Cells(l, 5) = TextBox2.Value
    'Cells(l, 6) = ComboBox2.Text
    'Cells(l, 7) = TextBox3.Text
    'MsgBox "ww"
    End If
End With

    
End Sub
1.ผมต้องการให้มันหาค่าใน sheet7 โดยที่ไม่ต้องใช้ sheet7.Activate

2.ผมต้องการให้มันใส่ค่าใน Cells นั้นๆ ใน sheet7 โดยที่ไม่ต้องใช้ sheet7.Activate ทำอย่างไรครับ

ขอบคุณล่วงหน้าครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#2

Post by snasui »

:D กรณีไม่ต้องการ Activate สามารถใช้ With...End With เข้ามาช่วยได้ ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ

ตัวอย่างการใช้ With...End With wordpress/collect-data-from-multi-sheets/
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#3

Post by zonewar123 »

ผมไม่เข้าใจ โค๊ดเลยครับ
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#4

Post by zonewar123 »

ผมไม่เคยใช้เลยครับ

ลองศึกษาแล้วงง

รู้แค่ว่ามันทำให้โค๊ดสั้นลง
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#5

Post by snasui »

zonewar123 wrote:ผมไม่เข้าใจ โค๊ดเลยครับ
zonewar123 wrote:ผมไม่เคยใช้เลยครับ

ลองศึกษาแล้วงง

รู้แค่ว่ามันทำให้โค๊ดสั้นลง
:D การเขียน Code จำเป็นต้องศึกษามาตามลำดับ และต้องปรับ Code ได้บ้าง ติดตรงไหนแล้วค่อยถามกันครับ
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#6

Post by zonewar123 »

Code: Select all

Private Sub CommandButton1_Click()
With Worksheets("สต็อกวัสดุ").Range("A1:C10")
    Do
    r = r + 1
    Loop Until Cells(r, 1) = ""
    Cells(r, 1) = r - 1
    Cells(r, 2) = TextBox5.Value
    Cells(r, 3) = TextBox1.Text
    Cells(r, 4) = ComboBox1.Text
    Cells(r, 5) = TextBox2.Value
    Cells(r, 6) = ComboBox2.Text
    Cells(r, 7) = TextBox3.Text
    End With
End Sub
ผมต้องการให้มันไปวางไว้ใน sheet สต็อกวัสดุ
ผมจะต้องแก้ไขอย่างไรบ้างครับอาจารย์
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#7

Post by snasui »

:D Code ที่เขี่ยนมาเองนั้นติดปัญหาอะไร ช่วยอธิบายเพิ่มเติมและแนบไฟล์ จะได้ช่วยทดสอบได้ครับ
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#8

Post by zonewar123 »

Code: Select all

Private Sub CommandButton1_Click()
With Worksheets("สต็อกวัสดุ").Range("A1:C10")
    Do
    r = r + 1
    Loop Until Cells(r, 1) = ""
    Cells(r, 1) = r - 1
    Cells(r, 2) = TextBox5.Value
    Cells(r, 3) = TextBox1.Text
    Cells(r, 4) = ComboBox1.Text
    Cells(r, 5) = TextBox2.Value
    Cells(r, 6) = ComboBox2.Text
    Cells(r, 7) = TextBox3.Text
    End With
End Sub
จากโค็ดข้างต้น ข้อมูลที่ให้ใส่นั้น มันไม่ไปอยู่ที่ sheet สต็อกวัสดุ

มันกับอยู่ที่หน้าที่เราเริ่ม sheet 1

โค็ดนี้จะอยู่ใน Userform1 นะครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#9

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
With Worksheets("สต็อกวัสดุ")
    Do
    r = r + 1
    Loop Until .Cells(r, 1) = ""
    .Cells(r, 1) = r - 1
    .Cells(r, 2) = TextBox5.Value
    .Cells(r, 3) = TextBox1.Text
    .Cells(r, 4) = ComboBox1.Text
    .Cells(r, 5) = TextBox2.Value
    .Cells(r, 6) = ComboBox2.Text
    .Cells(r, 7) = TextBox3.Text
End With
End Sub
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#10

Post by zonewar123 »

ได้แล้วครับ ขอบคุณครับ
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#11

Post by zonewar123 »

Code: Select all

Private Sub CommandButton1_Click()
lastrow = Cells(Rows.Count, 3).End(xlUp).Row
With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
    With Range("c1:c" & lastrow)
        Set c = .Find(TextBox1.Text, LookIn:=xlValues)
        If TextBox2.Text = "" Then
    
            MsgBox "¡ÃسÒãÊè¨Ó¹Ç¹¤èÐ"
        
        ElseIf Not c Is Nothing Then
            With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
            c.Offset(0, 2).Value = c.Offset(0, 2).Value + CInt(TextBox2.Value)
            MsgBox c.Offset(0, 2)
        End With
        Else
            With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
            Do
                l = l + 1
                Loop Until .Cells(l, 1) = ""
                .Cells(l, 1) = l - 1
                .Cells(l, 2) = TextBox5.Value
                .Cells(l, 3) = TextBox1.Text
                .Cells(l, 4) = ComboBox1.Text
                .Cells(l, 5) = TextBox2.Value
                .Cells(l, 6) = ComboBox2.Text
                .Cells(l, 7) = TextBox3.Text
                MsgBox "ww"
            End With
        End If
        If TextBox2.Value <> "" Then
            With Worksheets("ÃѺÇÑÊ´Ø")
            Do
                r = r + 1
                Loop Until .Cells(r, 1) = ""
                .Cells(r, 1) = r - 1
                .Cells(r, 2) = TextBox5.Value
                .Cells(r, 3) = TextBox1.Text
                .Cells(r, 4) = ComboBox1.Text
                .Cells(r, 5) = TextBox2.Value
                .Cells(r, 6) = ComboBox2.Text
                .Cells(r, 7) = TextBox3.Text
            End With
        End If
    End With
    End With
End Sub
จากโค๊ดข้างต้น

ทำไมเวลาเช็คหา c มันถึงเช็คเฉพาะหน้าชีท ที่เราอยู่ด้วยครับ

ปัญหาคือ?

จะทำยังไงให้มันไปเช็คเอง โดยที่เราไม่จำเป็นต้องอยู่หน้าที่ให้มันเช็ค

เพราะตอนนี้ผมต้องไปหน้า สต็อกวัสดุ เพื่อให้มันเช็ค จะไปชีทลงทะเบียนก็ไม่ได้เพราะมันไม่เช็คมันเช็คเฉพาะชีทที่ทำการเปิดอยู่เท่านั้น

ขอรบกวนผู้รู้ทุกท่านด้วยนะครับ

โค็ดนี้อยู่ที่ Userform1 ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#12

Post by snasui »

:D จากบางส่วนของ Code

Code: Select all

lastrow = Cells(Rows.Count, 3).End(xlUp).Row
With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
    With Range("c1:c" & lastrow)
ควรเป็น

Code: Select all

With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
    lastrow = .Cells(Rows.Count, 3).End(xlUp).Row
    With .Range("c1:c" & lastrow)
สังเกตหลังบรรทัดที่มี With Worksheets(...) จะต้องใช้เครื่องหมาย . นำหน้า Object ที่เป็นของ With Worksheets(...) นั้น นี่คือประโยชน์ของ With ถ้าเราไม่ใช้ . นำก็แสดงว่าเป็น Object ของชีทปัจจุบัน
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#13

Post by zonewar123 »

Code: Select all

Private Sub CommandButton1_Click()

With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
    lastrow = .Cells(Rows.Count, 3).End(xlUp).Row
    With .Range("b1:b" & lastrow)
        Set c = .Find(TextBox1.Text, LookIn:=xlValues)
        If TextBox2.Text = "" Then
    
            MsgBox "¡ÃسÒãÊè¨Ó¹Ç¹¤èÐ"
        
        ElseIf Not c Is Nothing Then
            c.Offset(0, 2).Value = c.Offset(0, 2).Value + CInt(TextBox2.Value)
            MsgBox c.Offset(0, 2)
        Else
            With Worksheets("ʵçÍ¡ÇÑÊ´Ø")
            Do
                l = l + 1
                Loop Until .Cells(l, 1) = ""
                .Cells(l, 1) = (l - 1) + 1
                .Cells(l, 2) = TextBox1.Text
                .Cells(l, 3) = ComboBox1.Text
                .Cells(l, 4) = TextBox2.Value
                .Cells(l, 5) = ComboBox2.Text
                .Cells(l, 6) = TextBox3.Text
                MsgBox "wks"
            End With
        End If
ทำไมมันถึงไม่เข้าไปเงื่อนไข elseif ครับผม สงสัย?

มันวิ่งเข้า Else อย่างเดียวเลย
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#14

Post by snasui »

:D ก็ต้องตรวจสอบครับว่าค่าที่เราค้นหาคืออะไร และมีค่านั้นหรือไม่ ตัวแปร c คือค่าที่เราค้นหา

Statement ElseIf Not c Is Nothing Then หมายถึงหากได้มีการกำหนดค่าให้กับตัวแปร c และ cเป็น Range ใด ๆ แล้ว
zonewar123
Member
Member
Posts: 34
Joined: Tue Apr 22, 2014 11:16 am

Re: หาค่าใน Sheet อื่น โดยที่ไม่ใช้คำสั่ง Sheet?.Activate

#15

Post by zonewar123 »

snasui wrote::D ก็ต้องตรวจสอบครับว่าค่าที่เราค้นหาคืออะไร และมีค่านั้นหรือไม่ ตัวแปร c คือค่าที่เราค้นหา

Statement ElseIf Not c Is Nothing Then หมายถึงหากได้มีการกำหนดค่าให้กับตัวแปร c และ cเป็น Range ใด ๆ แล้ว
ขอบคุณครับ
Post Reply