EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)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
zonewar123 wrote:ผมไม่เข้าใจ โค๊ดเลยครับ
การเขียน Code จำเป็นต้องศึกษามาตามลำดับ และต้องปรับ Code ได้บ้าง ติดตรงไหนแล้วค่อยถามกันครับzonewar123 wrote:ผมไม่เคยใช้เลยครับ
ลองศึกษาแล้วงง
รู้แค่ว่ามันทำให้โค๊ดสั้นลง
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
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
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
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
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 ของชีทปัจจุบัน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
c
คือค่าที่เราค้นหาElseIf Not c Is Nothing Then
หมายถึงหากได้มีการกำหนดค่าให้กับตัวแปร c
และ c
เป็น Range ใด ๆ แล้วขอบคุณครับsnasui wrote: ก็ต้องตรวจสอบครับว่าค่าที่เราค้นหาคืออะไร และมีค่านั้นหรือไม่ ตัวแปรc
คือค่าที่เราค้นหา
StatementElseIf Not c Is Nothing Then
หมายถึงหากได้มีการกำหนดค่าให้กับตัวแปรc
และc
เป็น Range ใด ๆ แล้ว