Đến nội dung


Hình ảnh
- - - - -

Lập trình cho Excel


  • Please log in to reply
61 replies to this topic

#21 discovertheworld195

discovertheworld195

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 May 2008 - 09:27 AM

Chào các bạn !

Lần đầu tiên mình tham gia diễn đàn, và chưa biết gì về VBA,mình chỉ biết nó rất quan trọng trong xây dựng, đọc bài của các bạn mình rất muốn tham gia.Bạn Jin có những bài viết thật hay.

Sao tự nhiên các cuộc thảo luận lại ngưng, các bạn và bạn Jin có thể tiếp tục chỉ thảo luận đi,vì mình nghĩ nó thật hữu ích cho mọi người
  • 0

#22 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 10 May 2008 - 11:45 AM

Chào các bạn !

Lần đầu tiên mình tham gia diễn đàn, và chưa biết gì về VBA,mình chỉ biết nó rất quan trọng trong xây dựng, đọc bài của các bạn mình rất muốn tham gia.Bạn Jin có những bài viết thật hay.

Sao tự nhiên các cuộc thảo luận lại ngưng, các bạn và bạn Jin có thể tiếp tục chỉ thảo luận đi,vì mình nghĩ nó thật hữu ích cho mọi người

Tôi thấy ý kiến này đúng!


The world có thể lên diễn đàn: giaiphapexcel mà discovery.
(có gì hay lại up lại diễn đàn này)
  • 0
Hãy ước cho trọn 1 ước mơ!

#23 discovertheworld195

discovertheworld195

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 May 2008 - 06:37 PM

Tôi thấy ý kiến này đúng!


The world có thể lên diễn đàn: giaiphapexcel mà discovery.
(có gì hay lại up lại diễn đàn này)


Uh ! Cảm ơn bạn nhiều bạn có tham gia diễn đàn giaiphapexcel không ?
Nếu mình biết nhất định mình sẽ hướng dẫn lại cho mọi người .Mình rất hi vọng vậy

Thân chào
  • 0

#24 discovertheworld195

discovertheworld195

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 May 2008 - 07:19 PM

V. Mổ xẻ file dữ liệu xuất ra từ ETABS (*.mdb)

1. Xuất File dữ liệu từ Etabs.
Etabs hỗ trợ nhiều kiểu file xuất ra, trong đó thông dụng và dễ làm việc nhất vẫn là *.mdb, bởi vì nó dễ dàng đọc được bằng các hàm hỗ trợ của hệ thống các chương trình của Microsoft - một chuẩn đã được chấp nhận.
Bạn xuất dữ liệu bằng menu File -> Export -> Save Input/Output as Access Database File

Hình đã gửi

Tuy nhiên, bạn chỉ nên xuất những dữ liệu cần thiết cho việc tính toán, theo kinh nghiệm của tôi, nó nằm trong các bảng:
MODEL DEFINITION
- Building Data
- Property Definitions
- Frame Assignments
ANALYSIS RESULTS
- Reaction
- Frame Output

Chừng ấy bảng có thể cho bạn truy tìm được tiết diện và nội lực của các cấu kiện; phản lực tại móng.
Do cách khai báo đặc trưng của vật liệu tuân theo các tiêu chuẩn của nước ngoài, nên chúgn ta không nhất thiết phải lấy dữ liệu này, thay vào đó bằng việc phát triển giao diện cho người dùng lựa chọn đặc trưng vật liệu tại các chương trình ứng dụng.
Bạn cũng chỉ nên lựa chọn những tổ hợp cần thiết để xuất ra, tránh phức tạp cho quá trình viết ứng dụng.

Hình đã gửi


Cảm ơn bạn rất nhiều :

Sau khi làm như bạn hướng dẫn mình sẽ có file như thế này phải không ?

http://www.cadviet.c...May_10_1915.gif

Mình định up cả kết quả lên luôn nhưng không được.

Làm sao mình có thể đọc được kết quả hả bạn.( Xuất kết quả sang EXCEL )

Thân chào
  • 0

#25 discovertheworld195

discovertheworld195

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 May 2008 - 07:23 PM

(Tiếp #3)

3. Đọc dữ liệu từ file Microsoft Data Base (*.mdb)
Với những người có nhu cầu đọc dữ liệu từ SAP, ETABS hay các chương trình khác, làm việc với *.mdb dĩ nhiên rất cần thiết.
Trong VBA, để đọc được dữ liệu từ *.mdb cần có bộ hỗ trợ liên kết động của Micrrosoft - DAO. Nó nằm sẵn trong hệ thống và bạn chỉ việc khai báo.
Bạn khai báo qua menu Tool --> References

Hình đã gửi

Hình đã gửi

Một ví dụ cho việc đọc dữ liệu:

Dim DB As Database
Dim rstFrameSection As Recordset
Dim VD
Set DB = OpenDatabase("D:\VD.mdb")
Set rstFrameSection = DB.OpenRecordset("SELECT * FROM [Frame Section Assignments]")
rstFrameSection.Filter = "Story = STORY4"
VD = rstFrameSection.Fields("SectionName")

Trong ví dụ trên, DB như mảng dữ liệu đã được mở qua dòng lệnh số 3
Dòng lệnh số 4 mở một bảng (table) trong file dữ liệu này - ở đây là bảng Frame Section Assignments .
Dòng lệnh số 5 lọc bảng dữ liệu trên, chỉ để lại những record thoả mãn cột Story có giá trị là STORY4
Dòng lệnh số 6, đọc giá trị tại cột SectionName của bảng dữ liệu (đã được lọc) trên.

Bạn nên tham khảo cấu trúc một file DataBase được xuất ra từ SAP hay ETABS để hiểu rõ hơn ví dụ trên.


Đọc kết quả thì sẽ làm như thế này :

http://www.cadviet.c...May_10_1922.gif

Chẳng thấy kết quả nào hết? các bạn chỉ mình với

Còn cái CODE thì đánh y nguyên vào phải không bạn.
  • 0

#26 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 11 May 2008 - 05:37 PM

Đọc kết quả thì sẽ làm như thế này :
http://www.cadviet.com/upfiles/ScreenHunte...May_10_1922.gif
Chẳng thấy kết quả nào hết? các bạn chỉ mình với
Còn cái CODE thì đánh y nguyên vào phải không bạn.


Bản thân Excel cũng có thể đọc kết quả từ file *.mdb bằng cách đổi file type trong hộp thoại Open sang thành Access Databases

Hình đã gửi

Nhưng đây chỉ là một cách đọc dữ liệu thông thường, chưa có chọn lọc. Do đó chúng ta sẽ dùng mã VBA để lập các lệnh có khả năng đọc file *.mdb, ghi số liệu sang bảng Sheet kèm theo việc phân loại và chọn lọc dữ liệu mong muốn.
Đoạn CODE trên chỉ là một phần nhỏ thể hiện ý đồ lấy dữ liệu. Còn một chương trình hoàn chỉnh thì sẽ phải phối hợp nhiều đoạn mã với chức năng khác nhau. Cho nên bạn copy nguyên đoạn CODE vào trong cửa sổ code của VBA thì không có tác dụng gì cả.

Vậy nguyên tắc cơ bản khi viết mã cho VBA thể hiện trong các bước sau đây:
1. Chuẩn bị khả năng giao tiếp với file MDB cho VBD
2. Viết một đoạn chương trình có khả năng gọi ra trong mõi trường Excel, nó phải là Sub () nếu là lệnh hoặc Function () nếu là hàm
3. Gọi thực hiện các đoạn mã đó

Bước 1 thể hiện trong hình 1 và 2 của bài http://www.cadviet.com/forum/index.php?s=&...post&p=8477

Bước 3 thể hiện trong hình 4, 5 và 6 của bài http://www.cadviet.com/forum/index.php?s=&...post&p=7859

Bước 2 mình sẽ thể hiện trong bài sau đây đê các bạn tiện theo dõi
  • 1

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#27 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 11 May 2008 - 06:22 PM

(Tiếp bài liền trước)

Đây là một ví dụ đơn giản về một Sub có khả năng đọc và xuất dữ liệu nói trong Bước 2 (bài trên).
Giả sử có một file với đường dẫn "D:\VD.mdb" được xuất ra từ ETABS bằng cách thức xuất đã nói ở Bài #8

Khi mở bằng Microsoft Access, bạn thấy nó gồm các bảng như hình dưới

Hình đã gửi

Giả sử chúng ta muốn lấy 1 cặp lực cắt và mô men của dầm B1 (tương ứng là V2 và M3) trong bảng Beam Forces của file trên, ta có đoạn Code sau:

Sub LDL()
Dim DB As Database
Dim rstBeamForces As Recordset
Dim VD
Set DB = OpenDatabase("D:\VD.mdb")
Set rstBeamForces = DB.OpenRecordset("SELECT * FROM [Beam Forces]")
rstBeamForces.Filter = "Beam = B1"

Sheet1.Cells(3, 1) = "Ten dam"
Sheet1.Cells(3, 2) = "Luc cat"
Sheet1.Cells(3, 3) = "Momen"

Sheet1.Cells(4, 1) = rstBeamForces.Fields("Beam")
Sheet1.Cells(4, 2) = rstBeamForces.Fields("V2")
Sheet1.Cells(4, 3) = rstBeamForces.Fields("M3")
End Sub

File ví dụ đây:
File Excel
File MDB
  • 1

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#28 discovertheworld195

discovertheworld195

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 11 May 2008 - 11:50 PM

Cảm ơn bạn nhất định mình sẽ tìm hiểu thật kĩ để không phu lòng nhiệt tình của bạn.

Thân chào !
  • 0

#29 tuantran79

tuantran79

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 17 September 2008 - 09:08 PM

Kiến thức VBA cơ bản trong Excel tôi đã up ở mục dưới rồi anh Nguyen Hoanh ạ:

http://www.giaiphape...hread.php?t=888

Vì đây là diễn đàn về Cad nên tôi quan tâm hơn về VBA for Cad. Tuy nhiên để lập trình tốt trong Cad, tôi vẫn cần nắm sâu hơn nữa kiến thức cơ bản về Cad thì mới biết lập trình Cad. Nhưng về VBA for Cad thì ở diễn đàn này có vẻ ít người quan tâm.

Rất quan tâm nhưng k hiểu rõ đc hết mà thôi,biết đc nhiều sẽ quan tâm đc nhiều,vậy nên đề nghị bạn post thêm và đi sâu hơn.Bạn post luôn fần mềm excel để mình và mọi người có thể thực hành luôn những bài của bạn.
  • 0
No night thì num bờ one same same thì num bờ ten

#30 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 September 2010 - 04:17 PM

đang ngiên cứu vấn đề này. may quá được các bác hướng dẩn. xem file ketcau cua bac jin rồi. chạy đã luôn. bác cố gắn hướng dẩn bọn em xong cái bảng tính này nhen
thank các bác nhiều. mà các bác ghi cụ thể tí. như bác jin là ok. có file mẫu ví dụ là ngon.
  • 0

#31 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 September 2010 - 05:24 PM

trời đất hóa ra cái topic này có từ thời napoleon. hix
nhưng dù sao củng post thắc mắc của mình mong anh jin có thể thấy và trả lời giúp em. em đang làm tốt ngiệp.
trong bảng tính cột của anh. phần copy datasbase. em hiểu ý đồ của anh nhưng ko thể hiểu nổi cách anh viết code. chổ vòng lặp ấy và chổ dim row id, row id =7. em củng thử copy cái hàm này sang một bảng tính mới để thử, nhưng ko chạy, biết là thiếu dử liệu nhập vào nhưng tìm hoài ko ra. mong anh giúp đỡ
Private Sub cmdCopy_Click()
Dim DB As Database
Dim rstFrameSection As Recordset
Dim rstFrameSectionProperty As Recordset
Dim rstColumnForces As Recordset
Dim rstOpen1 As Recordset
Dim rstOpen2 As Recordset
Dim rstOpen3 As Recordset
Dim rstOpen4 As Recordset
Dim rstOpen5 As Recordset
Dim rstSec1 As Recordset
Dim rstSec2 As Recordset
Dim rstSec3 As Recordset
Dim rstSec4 As Recordset
Dim rstSec5 As Recordset

Dim Row_ID

Set DB = OpenDatabase(MDBFile)
Set rstFrameSection = DB.OpenRecordset("SELECT * FROM [Frame Section Assignments]")
Set rstFrameSectionProperty = DB.OpenRecordset("SELECT * FROM [Frame Section Properties]")
Set rstColumnForces = DB.OpenRecordset("SELECT * FROM [Column Forces]")

Row_ID = 7
For i = 1 To lstBD.ListCount
Set rstOpen1 = rstColumnForces.OpenRecordset()
rstOpen1.Filter = QColumn(lstBD.List(i - 1))
Set rstOpen2 = rstOpen1.OpenRecordset()
With rstOpen2
Do While Not .EOF
SBT Row_ID, 1, .Fields("Story")
SBT Row_ID, 2, .Fields("Column")
SBT Row_ID, 3, .Fields("Load")
SBT Row_ID, 4, .Fields("Loc")
Set rstSec1 = rstFrameSection.OpenRecordset()
rstSec1.Filter = QStory(.Fields("Story"))
Set rstSec2 = rstSec1.OpenRecordset()
rstSec2.Filter = QLine(.Fields("Column"))
Set rstSec3 = rstSec2.OpenRecordset()
Set rstSec4 = rstFrameSectionProperty.OpenRecordset()
rstSec4.Filter = QSectionName(rstSec3.Fields("AnalysisSect"))
Set rstSec5 = rstSec4.OpenRecordset()
SBT Row_ID, 5, rstSec5.Fields("WidthTop") * 100
SBT Row_ID, 6, rstSec5.Fields("Depth") * 100
SBT Row_ID, 7, 3.5
SBT Row_ID, 8, .Fields("P")
SBT Row_ID, 9, .Fields("M2")
SBT Row_ID, 10, .Fields("M3")
Row_ID = Row_ID + 1
rstSec1.Close
rstSec2.Close
rstSec3.Close
rstSec4.Close
rstSec5.Close
.MoveNext
Loop
End With
rstOpen1.Close
rstOpen2.Close
PROGES1.Value = Int(i * 100 / lstBD.ListCount)
Next
rstFrameSection.Close
rstFrameSectionProperty.Close
rstColumnForces.Close
DB.Close
End
End Sub
  • 0

#32 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 22 September 2010 - 09:19 PM

Chào bạn Sonfa02, có một điều mình muốn chia sẻ với bạn, đó là một điều mà mình cho rằng rất quan trọng trong lập trình: Điều tối quan trọng là mình biết mình muốn làm cái gì (mục đích), và mình sẽ làm điều đó như thế nào. Có được đường lối, bạn sẽ nghĩ ra thuật toán (vì nó chính là hiện thân của đường lối, chỉ là viết theo một cách khoa học hơn thôi). Và việc tiếp theo chỉ là Code.
Đoạn mã Private Sub cmdCopy_Click() gồm 2 nhiệm vụ:
- Lấy kích thước tiết diện hình học của Cột
- Lấy nội lực N, Mx, My của Cột
Muốn thế trước tiên phạn phải nắm được 2 vấn đề:
- Cấu trúc file MDB được xuất ra bới ETABS
- Cách thức đọc dữ liệu từ file MDB bằng ngôn ngữ VB
Ngoài ra, bạn cũng cần phải biết cách thức làm việc của Access, như khả năng lọc giá trị...

Coi như bạn đã biết được các vấn đề này rồi (mình đã từng viết qua ở các bài trước). Sau đây mình sẽ giải thích đoạn Code mà mình đã viết.

Việc khai báo biến Row_ID và đặt Row_ID = 7 thực chất là đánh dấu cái hàng mình sẽ ghi dữ liệu vào bảng Excel, vì như bạn thấy, trong bảng Excel của mình, các dữ liệu bắt đầu ở dòng thứ 7 (các tròng trên gồm tiêu đề, đầu mục bảng...)

- Dòng thứ 22 tính từ dòng Private Sub cmdCopy_Click() là mở đầu của vòng lặp For - Next. Ý nghĩ của nó là lần lượt điểm qua từng tên Cột mình vấn copy vào bảng tính. Vì như bạn biết, giữa một khối dữ liệu đồ sộ mà Etabs xuất ra, chúng ta chỉ lựa chọn một vài trong số đó để làm thuyết minh mà thôi.
- Trong vòng lặp này: Mình sẽ mở bảng Nội lực (Forces) để lấy nội lực, đồng thời cũng lấy tên Tầng và tên Cột, để rồi từ đó sử dụng tính năng lọc Filter, để lầy tiết diện ứng với Cột mình đang tính toán. Nên nhơ ở đây phải thông qua 2 bảng, bangt thứ nhất cho biết Cột A ứng với loại tiết diện B, và bảng thứ 2 sẽ cho biết loại tiết diện B ứng với các kích thước (b*h) như thế nào.
  • 1

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#33 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 September 2010 - 12:00 AM

em cảm ơn anh Jin nhiều lắm. anh mới nhìn là biết trình độ của em rồi. nói thực em mới biết vba à. trình độ và chuyên môn của em còn bị lũng đoạn, nhiều vấn đề cơ bản còn phải dỡ sách ra đọc. nói túm lại hiện trạng của em bây giờ là học "nhảy cóc" chứ ko có một hệ thống hay nền tảng nào hết. đang cố gắng hoàn thiện dần. bài viết và hướng dẩn của anh Jin rất hay và dể hiểu. anh nói là em làm được ngay. có điều là để em tự làm thì ko tự ngĩ ra được, nên nhiều cái em hỏi hơi thừa, do học "nhảy cóc" nên mất căn bản. mong anh Jin thông cảm và giúp đỡ em trong quá trình trao đổi.
  • 0

#34 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 23 September 2010 - 02:14 PM

Bản thân là một kỹ sư, Jin lập trình với mục đích hỗ trợ cho công việc của mình, và do đó, Jin học lập trình một cách rất thực dụng. Bản thân kiến thức lập trình của Jin cũng không bài bản, Jin không tìm hiểu sâu vào việc lập trình mà chỉ cần tìm những phần có thể giúp mình đạt được mục đích.
Jin học lập trình bằng cách học theo người khác, một "người khác" rất giỏi ở đây chính là Google. Khi vướng một vấn đề gì đó, Jin thường search trên mạng, cả tiếng việt nhưng thường thì là tiếng Anh (không quan trọng, vì chỉ cần cái CODE). Sau đó đầu tiên Jin làm theo, rồi cố hiểu, và cuối cùng nó thành của mình.
Những phần mềm đầu tiên của Jin rất thô sơ, rồi sau đó trau chuốt dần.
Đó là kinh nghiệm của Jin, Jin nghĩ nó cũng sẽ phù hợp với bạn
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#35 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 September 2010 - 07:32 PM

khả năng đọc tiếng anh của em ko tốt lắm, lập trình đòi hỏi tư duy logic, cái này thú thực em củng kém, cái gì có mẩu sẳn thì em mới làm được. mong anh giúp đỡ nhiều. theo hướng dẩn của anh em cũng có làm được 2 cái ví dụ nho nhỏ. 1 cái chạy 1 cái ko. anh xem giúp e.
những cái em muốn bổ sung là trong ví dụ 1 em muốn chọn hết tầng thì làm sao. trong ví dụ 2( em sưu tầm và sữa lại), mục đích là để mỡ file mdb nhưng nó ko chạy, anh xem giúp hộ e. em đang trong quá trình làm tốt ngiệp, phần này em đang rất gấp, anh giúp đỡ em nhiều nhé anh. em cảm ơn anh nhiều. anh có thể cho em nick yahoo ko?
http://www.mediafire...3xqy71lliiw96b4
http://www.mediafire...i/Book1_11..xls
  • 0

#36 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 September 2010 - 09:09 PM

à các vấn đề này em giải quyêt1 được rồi. bây giờ em đang bí phần code tính toán và lọc dử liệu, anh có thể ví dụ cho em một cái được ko? anh có thể ví dụ tren file của em luôn đươc ko ạ
  • 0

#37 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 25 September 2010 - 08:27 AM

Rất tiếc Jin không thể giúp bạn viết code được, Jin cũng có những dự án dang dở chưa thực hiện xong.
Jin nghĩ bây giờ khó nhất đối với bạn là phương pháp tính toán cốt thép cột,
nếu vướng mắc vấn đề gì bạn có thể hỏi nhé!
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com


#38 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 25 September 2010 - 02:15 PM

tính toán cột thì em biết. cái khó là em chưa lập bảng tính lần nào cả, nên ko biết khai báo, và kết nối chúng lại với nhau, em có đọc code của anh, nhưng thực sự rất khó hiểu, nhiều biến em ko biết nó ở đâu ra, em mong anh cố gắng viết cho em một đoạn code nhỏ thôi, ví dụ như lọc 1 phần tử nào đó như Mmax, rồi lấy giá trị này tính vào công thức nào đó, đơn giản thôi. ý của em là em xem anh cách anh làm, cách anh đặt vị trí của chúng ở đau trong bảng.em mới bắt đầu nên rất khó mò mẫm, thank anh nhiều. mong anh hồi âm sớm. à anh có thể thay cho em cái code mà mặc định lưu file mdb ở ổ C:/, bây giờ em muốn thay đồi là khi thực hiện lệnh thì nó sẽ cho phép ta chọn file mdb ở bất cứ đâu, giống như nút công cụ open file trong wỏd hay excel ấy.
  • 0

#39 sonfa02

sonfa02

    biết vẽ line

  • Members
  • PipPip
  • 22 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 27 September 2010 - 12:38 PM

cho em hỏi trong file tính cột của anh. sau khi tính thép, các giá trị có ô màu xanh, cái đó có ý ngĩa là gì vậy? phần lọc là lọc nhửng trường hợp có tiết diện thép lớn nhất phải ko ạ, vậy khi lọc phải điền số( mặc định là 15). cái số này ngỉa là sao ạ. mây ngày này em vẩn chưa đọc hiểu hết các code của anh. thực sự rất khó hiểu, mong anh giúp đỡ em nhiều hơn, thank anh nhiều
  • 0

#40 Jin Yong

Jin Yong

    biết lệnh group

  • Vip
  • PipPipPipPipPipPip
  • 498 Bài viết
Điểm đánh giá: 334 (khá)

Đã gửi 27 September 2010 - 04:23 PM

Các giá trị ô màu xanh thực chất để hiển thị các giá trị >0 cho dễ nhìn.
Phần lọc dùng để chọn ra diện tích thép lớn nhất
Cách thông thường mà chúng ta học là chọn ra 3 trường hợp tổ hợp nguyên hiểm nhất để tính thép: Nmax-Mtu, Mmax-Ntu và Mmin-Ntu. Trong lập trình, do không ngại khối lượng tính toán, có thể tính toán tất cả các tổ hợp rồi chọn ra trường hợp có diện tích thép lớn nhất. Nhưng chọn ra như nào khi mà trong bảng Excel chỉ là một đống các số liệu. Quan sát thấy mỗi cột có 3 tiết diện được xuất ra, nếu như bạn có 5 trường hợp tổ hợp, thì số dòng dữ liệu dành cho mỗi cột (tại một tầng) là 3*5=15 (con số này sẽ là 18 nếu có 6 tôt hợp). Như vậy ta chỉ cần thực hiện một vòng lặp, trong đó cứ 15 hàng thì ta phải lọc một lần. Đây chính là ý nghĩa của con số 15.
  • 0

Phát triển phần mềm thiết kế Kết cấu Việt Nam - http://www.ketcausoft.com