1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Hỏi về Excel

Chủ đề trong 'Hỏi đáp Tin học' bởi dongming, 03/01/2007.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. Black_Bear

    Black_Bear Thành viên mới

    Tham gia ngày:
    28/07/2006
    Bài viết:
    102
    Đã được thích:
    0
    Tất nhiên là được chứ bạn. Đây là một macro đơn giản để thực hiện yêu cầu của bạn
    Public Sub Test()
    Dim str As String
    Dim cell As Range
    For Each cell In Selection
    l = Len(cell)
    str = Left(cell, l - 3)
    ''''''''3 la do dai cua spA, co the doi
    If Right(cell, 3) = "spA" Then
    str = str & Range("G5")
    cell.Value = str
    Else
    If Right(cell, 3) = "spB" Then
    str = str & Range("G6")
    cell.Value = str
    Else
    If Right(cell, 3) = "spC" Then
    str = str & Range("G7")
    cell.Value = str
    End If
    End If
    End If
    Next

    End Sub
    Vi du
    [​IMG]
    Sau khi chạy macro
    [​IMG]
    Bởi vì xử lý tiếng Việt rất phức tạp, bạn nên để các giá trị như "táo"
    , "bưởi"... trên Sheet chứ không thay trực tiếp trong code
    Selection là vùng chọn các ô để xử lý
    Có yêu cầu gì thêm thì pm cho tôi bạn nhé
    Thân
    Được Black_Bear sửa chữa / chuyển vào 17:34 ngày 04/01/2007
  2. dongming

    dongming Thành viên mới

    Tham gia ngày:
    07/12/2004
    Bài viết:
    96
    Đã được thích:
    0
    trước hết xin cám ơn Blạck-Bear, nhưng mình có 2 vấn đề:
    1. mình không muốn phải if(right...="spA", mình muốn là tạo 1 bảng tham chiếu gồm 2 cột, để tiện cho việc điền thêm sp.
    2. Câu văn của mình là tóm gọn, chứ thật ra nó dài lắm và không nằm cuối, thí dụ nằm ở giữa, "ngoài chợ bán spA rất rẻ" thí dụ vậy đi? thì có cách nào kh thay thế kh? không biết nói sao? bạn hiểu ý mình chứ
  3. Black_Bear

    Black_Bear Thành viên mới

    Tham gia ngày:
    28/07/2006
    Bài viết:
    102
    Đã được thích:
    0
    OK. Đây là đoạn code cho bạn.
    Public Sub Test()

    Dim str1 As String
    Dim str2
    Dim cell As Range

    For Each cell In Selection
    For i = 6 To 8
    str1 = cell.Value
    str2 = InStr(1, str1, Range("F" & i), 1)
    If str2 > 0 Then
    If Range("F" & i) = Mid(str1, str2, Len(Range("F" & i))) Then
    cell.Value = Replace(str1, Range("F" & i), Range("G" & i), 1)
    End If
    End If
    Next
    Next

    End Sub
    Ví dụ
    [​IMG]
    Sau khi chạy
    [​IMG]
    - 2 cột tham chiếu là F và G. Nếu cần thêm sản phẩm thì bạn thêm ở 2 cột này và tăng chỉ số lên (ở đây là 6 và 8). Bạn cũng có thể thay đổi 2 cột tham chiếu nhưng phải sửa tương ứng trong code. Bạn nên khai báo thành const để dễ thay đổi
    - Từ đoạn code này, bạn có thể tùy biến theo yêu cầu của mình
    Chúc vui
    Được Black_Bear sửa chữa / chuyển vào 11:42 ngày 05/01/2007
  4. dongming

    dongming Thành viên mới

    Tham gia ngày:
    07/12/2004
    Bài viết:
    96
    Đã được thích:
    0
    Dù chưa thử nghiệm, nhưng thấy bạn mình họa như vậy thì biết ok rồi? rất cám ơn bạn Black_Bear!
  5. dongming

    dongming Thành viên mới

    Tham gia ngày:
    07/12/2004
    Bài viết:
    96
    Đã được thích:
    0
    Đã giúp thì giúp cho chót luôn đi Black_Bear, mình có 2 vấn đề nhỏ thôi:
    1. bảng tham chiếu có thể là 1 bảng riêng, kh cần cứ mỗi lần muốn thay thế thì paste vào đúng bảng mà mình cần thay thế.
    2. mình muốn phong Marco để thực hành cho tất cả các book dc kh?
    1 lần nữa cám ơn Black_Bear rất nhiều!
  6. Black_Bear

    Black_Bear Thành viên mới

    Tham gia ngày:
    28/07/2006
    Bài viết:
    102
    Đã được thích:
    0
    Sặc. Pa này đúng là "được voi đòi Hai Bà Trưng"
    1. Yêu cầu này rất dễ. Cao hơn, bảng tham chiếu này, nên là 1 file text hoặc Access, độc lập với Excel -> dễ bảo trì, thêm bớt...
    2. Làm một Add-in là xong
    Nhưng cuối tuần rồi, tuần sau bạn nhé
    Thân
    Được Black_Bear sửa chữa / chuyển vào 16:43 ngày 05/01/2007
  7. Ba_Phi

    Ba_Phi Thành viên rất tích cực

    Tham gia ngày:
    07/12/2002
    Bài viết:
    1.596
    Đã được thích:
    1
    Mới học qua chút ít, mời bạn @dongming tham khảo ở đây
    http://www8.ttvnol.com/hoidaptinhoc/874196.ttvn
  8. dongming

    dongming Thành viên mới

    Tham gia ngày:
    07/12/2004
    Bài viết:
    96
    Đã được thích:
    0
    vậy Thứ Hai Black_Bear chỉ giùm mình nha, có 3 vấn đề nhỏ thôi:
    1. tạo bảng tham chiếu ở 1 tập tin khác để dể thay đổi, cũng như trông không rắc rối
    2. tạo thuận lợi cho việc thay thế, bằng cách nhấn 1 nút Add-in gì đó? vẫn chưa hiểu nhờ nói rõ giùm.
    3. chỉ Sort những hàng có chữ gì bất kỳ chẳng hạn.
    hồi trước mình chỉ học Excel cơ bản nên không biết nhiều nhờ chỉ giúp!
  9. dongming

    dongming Thành viên mới

    Tham gia ngày:
    07/12/2004
    Bài viết:
    96
    Đã được thích:
    0
    cứu mạng! cứu mang! Black_Bear ui!
  10. Black_Bear

    Black_Bear Thành viên mới

    Tham gia ngày:
    28/07/2006
    Bài viết:
    102
    Đã được thích:
    0
    Bạn thông cảm, thứ 2 bận wá. Hic

Chia sẻ trang này