Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng

Tiêu đề: Mong các a chỉ giúp về lập trình VBA [In trang]

Tác giả: ctythhhducchien    Thời gian: 16/6/2014 16:09
Tiêu đề: Mong các a chỉ giúp về lập trình VBA
Chào các a trong diễn đàn./.
Mấy lần xem đoạn video hướng dẫn VBA trong excel của anh Fubi, e hiểu lơ mơ về VBA, rất muốn tham gia lớp học VBA nhưng mà 6 tháng nữa mới có đợt. Xem mấy đoạn video e thấy rất thích làm việc thông minh như anh Fubi nhưng mà ... dốt anh văn wa, ko hiểu gì cả
- Hiện e đang làm rất nhiều trên excel và gặp 1 tình huống như thế này : e muốn ẩn tất cả các dòng - chiết tính vật liệu của 1 công tác, chỉ giữ lại dòng nhân công và máy thi công ( công trình e có khoảng 1000 công tác ). Làm thủ công thì lâu wa mong anh Fubi và các ae trong diễn đàn giúp đỡ.



Tác giả: phamvana    Thời gian: 16/6/2014 21:12
https://www.youtube.com/watch?v=fxXQwesgrtU
hướng dẫn rất cụ thể.


Tác giả: tranhungdao12a3    Thời gian: 16/6/2014 22:45
Bạn Xài code sau xem sao:
[Visual Basic] 纯文本查看 复制代码
Sub anhiendong()
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
  For ir = Selection.Count To 1 Step -1
      If Selection.Item(ir) = x1Blanks Then _
         Selection.Item(ir).Rows.Hidden = True
  Next ir
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
End Sub


Quét qua vùng dữ liệu, tìm thấy cell rỗng thì ẩn cả dòng.

Tác giả: tranhoe    Thời gian: 16/6/2014 23:12
tranhungdao12a3 gửi lúc 16/6/2014 22:45
Bạn Xài code sau xem sao:[mw_shl_code=vb,true]Sub andongtrong()
  Application.ScreenUpdating = Fal ...

Không phải ẩn dòng trống đâu!
Mục tiêu là: "ẩn tất cả các dòng - chiết tính vật liệu của 1 công tác,  chỉ giữ lại dòng nhân công và máy thi công"
Nhưng vấn đề là phải đưa file công việc lên (có thể chỉ cần vài công việc thôi, không cần 1000.000 cv), ghi rõ yêu cầu.
.....................................................................
Bạn phải biết rõ 1 nguyên lý bất biến sau: "Tất cả những cái gì có tính chất lập đi lập lại theo 1 qui luật thì đều có thể ghi lại macro để dùng chung sau này".
Ghi thành Sub hay Function là tùy ý thích của Người dùng.

Tác giả: tranhungdao12a3    Thời gian: 16/6/2014 23:32
Do chủ thớt không có gửi File, nên em mặc định tại cột chứa mã hiệu thì các cell phần chiết tính là rỗng nên em mới viết thế! Nếu đề bài thực tế có khác thì ta sẽ chỉnh lại. Do chủ thớt hỏi mà không gửi File cụ thể nên em ném đá đại thôi! Nói chung viết đúng phải là ẩn dòng chứa cell rỗng thì đúng hơn.
Tác giả: tranhoe    Thời gian: 7/7/2014 17:05
Bạn vừa cám ơn 1 bài trả lời của mình.
Bạn đã giải quyết được chưa?
Bạn chỉ cần đưa file rút gọn (chỉ cần chừng vài công việc) lên thôi.
Căn cứ trên file đó mới viết code cho Bạn được; vì cái này liên quan đến "Nhân công" và "Máy thi công" sử dụng font Unicode trong khi VBA không hổ trợ Unicode.
Nhìn thấy file mới viết được code cho chuẩn để sử dụng cho cả vài nghìn công việc.
Tác giả: tranhungdao12a3    Thời gian: 8/7/2014 08:00
Đọc kỹ mới nhận ra là có câu"Chỉ giữ lại dòng Nhân Công và Máy thi công", heeee! mình ném đá linh tinh rồi! Tốt nhất bạn nên gửi File lên. Câu hỏi này gần giống câu hỏi của bạn Phuongnt. Bạn không gửi file lên thì anh TranHoe và anh Fubi không biết thế nào mà giúp đỡ bạn đâu. Theo mình tất cả các câu hỏi khi đưa lên diễn đàn thì đều nên cân nhắc kỹ càng xem bản thân đã cố gắng hết mức để làm chưa? nếu đã thực sự cố gắng tìm hiểu mà vẫn không làm được thì hãy nên hỏi? và một khi đã hỏi thì phải thực sự chú tâm và nhiệt tình học hỏi. Vì các bạn cũng biết là các anh ấy cũng bận trăm công nghìn việc, một khi đã giành thời gian giúp đỡ bạn thì mình tin đến đây các bạn sẽ biết phải làm gì. Hỏi cũng cần phải thể hiện sự chuyên nghiệp và nhiệt thành nhé!
Tác giả: ctythhhducchien    Thời gian: 13/7/2014 10:22
ở sheet CHIẾT TÍNH các bác ạ:em muốn ẩn tất cả các dòng vật liệu , chỉ giữ lại các dòng nhân công và máy ở tất cả các công tác.

du toan DE XUATquai nua.xls

3.7 MB, Lượt tải về: 1434


Tác giả: laocong    Thời gian: 3/8/2014 22:02
Muốn chỉ hide những dòng Blank / Null, đơn giản là dùng CountA

Tùy theo điều kiện mà ta nêm nếm thức ăn



[Visual Basic] 纯文本查看 复制代码
Sub HideRows()
    Dim iLastRow As Long
    Dim i As Long
     
    With ActiveSheet
         
        iLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        For i = 1 To iLastRow
            Rows(i).Hidden = Application.CountA(Cells(i, "A").Resize(, 4)) = 0
        Next i
         
    End With
     
End Sub


Nếu muốn nhấn mạnh điêu kiện là . Ô của cột A ,B , C  và D mà blank thì hide

Sub HideRows()
    Dim rRange As Range, rCell As Range
    Dim strVal As String
     
    Set rRange = Worksheets(1).Range("A1:A100")
     
    For Each rCell In rRange
        strVal = rCell & rCell(1, 2) & rCell(1, 3) & rCell(1, 4)
        rCell.EntireRow.Hidden = strVal = vbNullString
    Next rCell
     
     'A, B, C & D are empty.
     
End Sub


Tác giả: tranhoe    Thời gian: 4/8/2014 14:55
laocong gửi lúc 3/8/2014 22:02
Muốn chỉ hide những dòng Blank / Null, đơn giản là dùng CountA

Tùy theo điều kiện mà  ...

Bạn hiểu sai vấn đề rồi.
Yêu cầu của bài Không phải ẩn dòng trống đâu!
Mục tiêu là: "ẩn tất cả các dòng - chiết tính vật liệu của công tác,  chỉ giữ lại dòng nhân công và máy thi công"
Tác giả: tranhoe    Thời gian: 4/8/2014 16:09
ctythhhducchien gửi lúc 13/7/2014 10:22
ở sheet CHIẾT TÍNH các bác ạ:em muốn ẩn tất cả các dòng vật liệu , chỉ giữ lại các ...

File của Bạn đây.
Xem thử đúng ý chưa nhé!
du toan DE XUATquai nua 2.xls (3.8 MB, Lượt tải về: 1053)