VBA แบบประถม
Posted: Thu Jul 04, 2013 11:56 pm
เริ่มเขียนโครงไว้ แต่ยังให้งานไม่ได้ เพราะการประกาศและรูปแบบ ยังไม่ถูกต้อง ขอรบกวนช่วยกัน แก้ไขให้ใช้งานได้ด้วยครับ
ฟอรัม Excel, VBA และอื่นๆ ของคนไทยเพื่อประโยชน์ของทุกคนในจักรวาล (Forum Excel, VBA and others of Thai people for everyone in the universe.)
http://snasui.com/
Code: Select all
Sub test()
Dim rAll As Range, r As Range
Dim lngStart As Long, lngEnd As Long
Dim rData As Range
Dim amt As Double
With Sheets("Sheet14")
Set rAll = .Range("a3", .Range("a" & Rows.Count).End(xlUp))
For Each r In rAll
lngStart = r.End(xlToRight).Offset(0, 1).Column
lngEnd = .Cells(r.Row, "m").End(xlToLeft).Offset(0, -1).Column
If lngEnd - lngStart >= 0 Then
Set rData = .Range(.Cells(r.Row, lngStart), .Cells(r.Row, lngEnd))
amt = Application.Sum(rData)
.Cells(r.Row, "n") = amt / (lngEnd - lngStart + 1)
End If
Next r
End With
End Sub
f=100-(a*100/application.max(1,e))
ครับCode: Select all
Sub EPS_8()
Dim rAll As Range, r As Range
Dim lngStart As Long, lngEnd As Long
Dim rData As Range, rd As Range
Dim amt As Double
Dim a, b As Double
With Sheets("Sheet8")
Set rAll = .Range("a3", .Range("a" & Rows.Count).End(xlUp))
rAll.Select
For Each r In rAll
' lngStart = r.End(xlToRight).Offset(0, 1).Column
lngStart = .Cells(r.Row, "d").End(xlToRight).Offset(0, 0).Column
.Cells(r.Row, "d").End(xlToRight).Offset(0, 0).Select
lngEnd = .Cells(r.Row, "m").End(xlToLeft).Offset(0, -1).Column
.Cells(r.Row, "m").End(xlToLeft).Offset(0, -1).Select
a = .Cells(r.Row, "d").End(xlToRight).Offset(0, 0).Value
.Cells(r.Row, 15) = a
b = .Cells(r.Row, "m").End(xlToLeft).Offset(0, -1).Value
.Cells(r.Row, 16) = b
If lngEnd - lngStart >= 0 Then
Set rData = .Range(.Cells(r.Row, lngStart), .Cells(r.Row, lngEnd))
rData.Select
amt = Application.Sum(rData)
.Cells(r.Row, "n") = amt / (lngEnd - lngStart + 1)
.Range("l3", "z700").NumberFormat = "#,##0.00"
.Cells(r.Row, 17) = amt
End If
Next r
End With
Call Sound_2
End Sub
P1649 wrote:Error ที่แสดงน่าแทนค่าด้วย 0 ผมพยายามลอง iserror แล้วก็ยุ่งไปกันใหญ่
ขอรบกวนอาจารย์ ช่วยแนะนำด้วยครับ
หมายถึงหากว่ามีการหารด้วย 0 คือ e มีค่าเป็น 0 แล้วให้ f มีค่าเป็น 0 ใช่หรือไม่ครับP1649 wrote:Error ที่แสดงน่าแทนค่าด้วย 0 ผมพยายามลอง iserror แล้วก็ยุ่งไปกันใหญ่
ขอรบกวนอาจารย์ ช่วยแนะนำด้วยครับ