hoangdonghai
Thành viên mới

- Tham gia
- 16/10/13
- Bài viết
- 8
- Được thích
- 0
Đây là 3 macro em viết:
Sub save()
Application.ScreenUpdating = False
Sheets("interface").Select
a = Range("f14").Value
b = Range("f15").Value
b = Range("f31").Value
d = Range("f29").Value
e = Range("f17").Value
f = Range("f24").Value
g = Range("f38").Value
h = Range("f40").Value
Sheets("Results").Select
rcrt = 11
Do Until Cells(rcrt, 2).Value = ""
rcrt = rcrt + 1
Loop
Cells(rcrt, 2).Value = a
Cells(rcrt, 3).Value = b
Cells(rcrt, 4).Value = c
Cells(rcrt, 5).Value = d
Cells(rcrt, 6).Value = e
Cells(rcrt, 7).Value = f
Cells(rcrt, 8).Value = g
Cells(rcrt, 9).Value = h
End Sub
Sub Solver()
Application.ScreenUpdating = True
solverreset
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverAdd CellRef:="$F$24", Relation:=1, FormulaText:="65000"
SolverAdd CellRef:="$F$24", Relation:=3, FormulaText:="1"
SolverAdd CellRef:="$F$33", Relation:=1, FormulaText:="$F$17"
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverSolve userfinish:=True
End Sub
Sub optimize1()
Sheets("interface").Select
'Range("f24").Value = 65000
Call Solver
End Sub
Sub selectbeam()
Sheets("model").Select
For beam = 1 To 274
Range("p9").Value = Val(beam)
beammoment = Range("p13").Value
moment = Range("j6").Value
If beammoment >= moment Then
Exit Sub
End If
Next
End Sub
Đây là supermacro:
Sub fifthmacro()
Sheets("interface").Select
For Length = 5 To 75
Range("f14").Value = Length
Call optimize1
Call selectbeam
Call save
Next
Application.ScreenUpdating = True
End Sub
Khi em chạy riêng từng macro thì đều cho ra kết quả, nhưng khi gộp chung vào supermacro thì lại không được (cụ thể là em cho biến chạy từ 5-75 nhưng khi chạy supermacro thì nó cứ dậm chân tại số 5 mà không nhích lên).
rất mong các anh các chị giải đáp giúp em ạ! em cám ơn
link download file excel đây ạ:http://www.mediafire.com/view/0pgcfcy1f1v2sp9/Project3-Structure-template.xlsm
Sub save()
Application.ScreenUpdating = False
Sheets("interface").Select
a = Range("f14").Value
b = Range("f15").Value
b = Range("f31").Value
d = Range("f29").Value
e = Range("f17").Value
f = Range("f24").Value
g = Range("f38").Value
h = Range("f40").Value
Sheets("Results").Select
rcrt = 11
Do Until Cells(rcrt, 2).Value = ""
rcrt = rcrt + 1
Loop
Cells(rcrt, 2).Value = a
Cells(rcrt, 3).Value = b
Cells(rcrt, 4).Value = c
Cells(rcrt, 5).Value = d
Cells(rcrt, 6).Value = e
Cells(rcrt, 7).Value = f
Cells(rcrt, 8).Value = g
Cells(rcrt, 9).Value = h
End Sub
Sub Solver()
Application.ScreenUpdating = True
solverreset
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverAdd CellRef:="$F$24", Relation:=1, FormulaText:="65000"
SolverAdd CellRef:="$F$24", Relation:=3, FormulaText:="1"
SolverAdd CellRef:="$F$33", Relation:=1, FormulaText:="$F$17"
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverOk SetCell:="$F$26", MaxMinVal:=1, ValueOf:=0, ByChange:="$F$24"
SolverSolve userfinish:=True
End Sub
Sub optimize1()
Sheets("interface").Select
'Range("f24").Value = 65000
Call Solver
End Sub
Sub selectbeam()
Sheets("model").Select
For beam = 1 To 274
Range("p9").Value = Val(beam)
beammoment = Range("p13").Value
moment = Range("j6").Value
If beammoment >= moment Then
Exit Sub
End If
Next
End Sub
Đây là supermacro:
Sub fifthmacro()
Sheets("interface").Select
For Length = 5 To 75
Range("f14").Value = Length
Call optimize1
Call selectbeam
Call save
Next
Application.ScreenUpdating = True
End Sub
Khi em chạy riêng từng macro thì đều cho ra kết quả, nhưng khi gộp chung vào supermacro thì lại không được (cụ thể là em cho biến chạy từ 5-75 nhưng khi chạy supermacro thì nó cứ dậm chân tại số 5 mà không nhích lên).
rất mong các anh các chị giải đáp giúp em ạ! em cám ơn
link download file excel đây ạ:http://www.mediafire.com/view/0pgcfcy1f1v2sp9/Project3-Structure-template.xlsm