Cần hỗ trợ code so sánh giá trị (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngaykhongem1

Thành viên chính thức
Tham gia
14/4/12
Bài viết
50
Được thích
2
Chào mọi người!
Mình có 1 file excel viết macro dùng ngôn ngữ VBA về so sánh giá trị mà làm hoài chưa được. Bạn nào hỗ trợ mình với. Vui lòng xem trong file mình đính kèm.
thanks mọi người nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Tạm thời như vậy đã:

Bạn vào VBA, rồi Insert/ Module, sau đó Paste đoạn code sau:
Mã:
Option Explicit


Public Sub Sosanh_GPE()
Dim i, j, m
Dim col_B, col_E
Dim chucaicuoi As String


For i = 2 To WorksheetFunction.CountA(Sheet1.Range("4:4"))
    If Sheet1.Cells(5, i).Value > 0.95 Then
        col_B = Sheet1.Cells(6, i).End(xlToLeft).Column
        col_E = Sheet1.Cells(6, i).End(xlToRight).Column
        For j = col_B To col_E - 1
            If Sheet1.Cells(4, j).Value > Sheet1.Cells(4, col_B).Value Then
                m = InStr(1, Sheet1.Cells(3, col_B).Value, "(", vbTextCompare)
                chucaicuoi = Mid(Sheet1.Cells(3, col_B).Value, m + 1, 1)
                Sheet1.Cells(4, j).Value = Sheet1.Cells(4, j).Value & chucaicuoi
            Else
[COLOR=#ff0000]                'Cai phan nho hon minh chua hieu lam[/COLOR]
[COLOR=#ff0000]                'vi co the co nhieu hon 2 gia tri cung nho hon thi tinh the nao?[/COLOR]
            End If
       Next j
    End If
Next i




End Sub

Bạn xem lại điều kiện nhé.
VD trong bài của bạn thì nếu thay giá trị ô E4 = 5 thì ô D4 sẽ có giá trị như thế nào vì ô F4 cũng <7.
 
Upvote 0
Mình chạy được rồi nhưng vẫn còn lỗi là nếu giá trị cột đem so sánh lớn hơn giá trị ở cột * thì ok nhưng ngược lại thì chương trình không chạy. Bạn xem lại giúp mình với.
 
Upvote 0
Upvote 0
Mình chạy được rồi nhưng vẫn còn lỗi là nếu giá trị cột đem so sánh lớn hơn giá trị ở cột * thì ok nhưng ngược lại thì chương trình không chạy. Bạn xem lại giúp mình với.

Bạn xem lại bài viết của mình, cái phần chữ đỏ đấy.
Nói chung điều kiện nhỏ hơn không rõ ràng.
 
Upvote 0
Theo mình đoán là bạn í có nhiều cụm dòng như vậy; & mỗi cụm dòng là 1 lần đo đạt thí nghiệm

(Ở đây chỉ là 1 trong những cụm dòng như vậy)

Cái mà mình chưa rõ ở chổ là: Dòng trên cùgn có fải là dòng chuẩn cho tất tần tật các lần đo hay không mà thôi?
 
Upvote 0
Tôi nghĩ trong bảng là số liệu phân tích thống kê. Dòng phần trăm hình như là độ tin cậy của phép thống kê. Các dấu * đánh dấu 1 bộ số liệu, có cái là 2 ô, cái thì 3 ô. Vấn đề là với 1 bộ nhiều hơn 3 ô thì quy tắt thực hiện phép so sánh là như thế nào?
Chẳng hạn, với 3 ô D4:F4 có các giá trị 7 - 32 - 3 và dòng % có E5 = 0.96 >= 0.95 => đưa vào sánh, thì tại sao lại chọn so sánh 2 cặp: 7 - 32 và 7 - 3 (hay là lấy ô đầu tiên lần lượt so sánh với các ô còn lại???) - điều này chưa có giải thích rõ ràng.
 
Upvote 0
B1:Nếu dòng % lớn 0.95 thì làm tiếp bước 2 còn <0.95 thì không làm gì
B2:Dòng GIATRI so sánh từ cột bắt đầu có dấu * và kết thúc bằng dấu * VD như trên thì sẽ so sánh 6 với 34 ; 32 so sánh với 7 và 3 so sánh với 7 ; 53 so sánh với 4 ; 5 so sánh với 4 ; 34 so với 64
Dòng GIATRI nếu so sánh thấy cột nào lớn hơn thì thêm vào cột đó chữ cái cuối của dòng header cột nhỏ hơn VD như trên 34>6 thì sẽ thành 34B ; 32>7 thành 32A , 7>3 thành 7C
Ý tôi là cái điều kiện nhỏ hơn ý.
Theo file bạn cung cấp:
Giải sử ô E4 = 5 (< D4 = 7) thì ô D4 sẽ thêm ký tự B hay C?

@ hoangvulan:
Theo mình thì bạn đó lấy giá trị đầu tiên so sánh với các ô còn lại trong phạm vi dấu *
 
Lần chỉnh sửa cuối:
Upvote 0
@hoangvuluan: Bạn đoán chính xác ý của đề bài rồi đấy. Trong 1 bộ so sánh như bạn nói thì các ô còn lại được mang đi so sánh với ô có đánh dấu *
@nvson : cái điều kiện thì không phải bận tâm vì trong 1 bộ so sánh 3 như vậy mặc định lúc nào cũng chỉ có 1 điều kiện >0.95 thôi.
-- Mong các bạn hướng dẫn giúp mình với
 
Upvote 0
@hoangvuluan: Bạn đoán chính xác ý của đề bài rồi đấy. Trong 1 bộ so sánh như bạn nói thì các ô còn lại được mang đi so sánh với ô có đánh dấu *
@nvson : cái điều kiện thì không phải bận tâm vì trong 1 bộ so sánh 3 như vậy mặc định lúc nào cũng chỉ có 1 điều kiện >0.95 thôi.
-- Mong các bạn hướng dẫn giúp mình với

Dĩ nhiên là chỉ có 1 điều kiện >0.95,
Nhưng có thể các số trong phạm vi 2 dấu * đều nhỏ hơn ô so sánh (ô chứa dấu * đầu tiên) thì giá trị ô so sánh sẽ lấy như thế nào?
Bạn xem file nhé
 

File đính kèm

Upvote 0
Kiểm tra xem đã đúng theo yêu cầu chưa?
Tôi đã thử thay đổi 1 vài giá trị và test, nhưng có thể chưa test hết các tình huống.
 

File đính kèm

Upvote 0
như ví dụ của bạn thì ở cụm so sánh đó điều kiện >0.95 cột B giá trị 5 < cột có dấu * giá trị 7 thì ở cột giá trị 7 sẽ thành 7 B
 
Upvote 0
ah` ko mình đang nói chuyện với bạn @nvson ...thanks các bạn nhiều. file của bạn để mình xem được chưa ok chưa mình sẽ hồi âm lại nhé
 
Upvote 0
@hoangvuluan: ở bộ so sánh 2 giá trị thì ok còn ở bộ so sánh giữa 3 giá trị thì vẫn còn bị lỗi bạn ơi. mà yêu cầu là sau khi chạy macro xong dữ liệu trên bảng đó sẽ thay đổi luôn hoặc xuất ra 1 sheet khác chứ không phải trích sang 1 bảng khác. Bạn xem lại giúp mình nhé!
 
Upvote 0
@hoangvuluan: ở bộ so sánh 2 giá trị thì ok còn ở bộ so sánh giữa 3 giá trị thì vẫn còn bị lỗi bạn ơi. mà yêu cầu là sau khi chạy macro xong dữ liệu trên bảng đó sẽ thay đổi luôn hoặc xuất ra 1 sheet khác chứ không phải trích sang 1 bảng khác. Bạn xem lại giúp mình nhé!

Lỗi ở bộ 3 là lỗi như thế nào? Bạn chỉ cụ thể để tôi xem lại mã lệnh nhé.
Còn vấn đề xuất ra đâu không quan trọng, trong file tôi để ngay trong sheet để dễ kiểm tra thôi mà. Còn nếu muốn chính xác, thì bạn đưa file nguyên mẫu, kể cả cách bố trí trong đó của bạn thì tôi mới xác định sẽ xuất dữ liệu vào đâu cho đúng yêu cầu!
 
Upvote 0
Bạn cho minh xin nick yahoo được không mình trao đổi cho dễ
 
Upvote 0
Bạn xem lại file sau xem có được ko nhé?
 

File đính kèm

Upvote 0
Mình gửi các bạn luôn file đề bài.
yêu cầu là khi chạy macro ở file 1 thì sẽ xuất hiện hộp thoại chèn file 2 vào và xuất ra 1 file khác và yêu cầu ở file được tạo ra là so sánh các giá trị như mình đã trao đổi với các bạn từ trước.
 

File đính kèm

Upvote 0
Bạn nào giúp mình với, mình đang cần cái này gấp. Thanks!!!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom