Cần giúp gõ số thứ tự bằng số La Mã (Theo thứ tự tăng dần) vào các ô trống xen kẽ (4 người xem)

Liên hệ QC

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột B có các ô trống xen kẽ kiểu như vầy:

QpZsWs4.png


=> Mong muốn của tôi là điền số thứ tự bằng số La Mã vào các ô trống xen kẽ đó (Theo thứ tự tăng dần), kiểu như vầy:

uChThjg.png


Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Anh xem cách này thế nào:
Bước 1: Filter ô trống là các ô cần điền số la mã
Bước 2: Đánh số thứ tự các ô trống tăng dần sang cột phụ
Bước 3: Nhập hàm Roman với đối số là các ô ở cột phụ
 

File đính kèm

Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột B có các ô trống xen kẽ kiểu như vầy:

QpZsWs4.png


=> Mong muốn của tôi là điền số thứ tự bằng số La Mã vào các ô trống xen kẽ đó (Theo thứ tự tăng dần), kiểu như vầy:

uChThjg.png


Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.

Mình có ý là khai báo 1 cái Array("I","II","III",...)
Sau đó duyệt qua các Cell trống và lấy phần từ của mảng điền lần lượt vào đây.
 
Mình Code thế này, bạn xem sao nhé!
Mã:
Sub FillLaMa()
Dim RangeFill As Range
Dim BienChay As Range
Dim iBienDem As Integer
Dim Vung As Range
Range("B4:B20").SpecialCells(xlCellTypeBlanks).Select
iBienDem = 0
For Each BienChay In Selection
    iBienDem = iBienDem + 1
    BienChay.Value = Cells(iBienDem + 3, 9).Value
Next BienChay
End Sub
 
Mình Code thế này, bạn xem sao nhé!
Mã:
Sub FillLaMa()
Dim RangeFill As Range
Dim BienChay As Range
Dim iBienDem As Integer
Dim Vung As Range
Range("B4:B20").SpecialCells(xlCellTypeBlanks).Select
iBienDem = 0
For Each BienChay In Selection
    iBienDem = iBienDem + 1
    BienChay.Value = Cells(iBienDem + 3, 9).Value
Next BienChay
End Sub
Sao tôi chạy Code mà chả thấy điền số La Mã gì nhỉ?
 
Sao tôi chạy Code mà chả thấy điền số La Mã gì nhỉ?
ý tưởng viết 1 sub
duyệt từ đầu đến cuối
nếu gặp ô trống thì điền số thứ tự (tăng dần nếu điều kiện đúng đồng thời chuyển sang dạng số LaMã)
 
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột B có các ô trống xen kẽ kiểu như vầy:

QpZsWs4.png


=> Mong muốn của tôi là điền số thứ tự bằng số La Mã vào các ô trống xen kẽ đó (Theo thứ tự tăng dần), kiểu như vầy:

uChThjg.png


Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Đã xem rất nhiều bài của bạn, code bạn còn hơn tôi nhưng quả thật là với đề tài này mà bạn không xử được kể cũng hơi lạ.
---
Tôi ở Hà Nội, trước có làm cho Sông Đà 1 chi nhánh TPHCM
 
PHP:
Option Explicit
Sub Macro1()
 Dim Cls As Range, Rng As Range, WF As Object
 Dim J As Long
 
 Set Rng = Range([B3], [B65500].End(xlUp)).SpecialCells(xlCellTypeBlanks)
 If Rng Is Nothing Then
    MsgBox "Nothing"
 Else
    Set WF = Application.WorksheetFunction
    For Each Cls In Rng
        J = J + 1
        Cls.Value = WF.Roman(J, 0)
    Next Cls
 End If
End Sub
 
Đã xem rất nhiều bài của bạn, code bạn còn hơn tôi nhưng quả thật là với đề tài này mà bạn không xử được kể cũng hơi lạ.
Tôi mà xử lý được thì đăng đề tài làm chi hả bạn?
Tôi ở Hà Nội, trước có làm cho Sông Đà 1 chi nhánh TPHCM
Vậy chứ giờ bạn còn làm Sông Đà không? Tôi đang làm ở Sông Đà 5.
 
Tôi mà xử lý được thì đăng đề tài làm chi hả bạn?

Vậy chứ giờ bạn còn làm Sông Đà không? Tôi đang làm ở Sông Đà 5.
Bài này cũng tương tự như chèn số trước những dòng màu vàng của bạn trước đây và có rất nhiều bài giải cho bạn. Vì vậy cũng cần xem lại tại sao đã có những bài tương tự mà bạn không giải quyết được.
---
Tôi vẫn ở Sông Đà 1
---
Diễn đàn này theo cá nhân tôi hiểu là phi lợi nhuận và là nơi hội tụ của những người có trách nhiệm với cộng đồng, có lẽ bạn theo phật giáo chắc biết thế nào là "Xả kỷ tòng nhân"
 
Dữ liệu của mình từ B4:B20, dòng Số La Mã từ row 4 trở xuống, cột 9.
Còn về mặt ý tưởng thì phihndhsp đã nói giúp mình đó.
Tôi chân thành cảm ơn các bạn (Và các bạn ở trên) đã gợi ý, nhờ các bạn mà tôi viết được Code:
[GPECODE=vb]Sub SoLaMa()
Dim Rng As Range
Dim i As Long
For Each Rng In Range([B3], [B65536].End(xlUp)).SpecialCells(xlCellTypeBlanks)
i = i + 1
Rng = "=Roman(" & i & ")"
Next
End Sub
[/GPECODE]
 
Vấn đề này dùng công thức cũng được

=IF(B4<>"",B4,ROMAN(COUNTBLANK($B$4:B4)))
 
Tôi chân thành cảm ơn các bạn (Và các bạn ở trên) đã gợi ý, nhờ các bạn mà tôi viết được Code:
[GPECODE=vb]Sub SoLaMa()
Dim Rng As Range
Dim i As Long
For Each Rng In Range([B3], [B65536].End(xlUp)).SpecialCells(xlCellTypeBlanks)
i = i + 1
Rng = "=Roman(" & i & ")"
Next
End Sub
[/GPECODE]

Đoạn mã này của bạn tiềm ẩn lỗi khi mà
Range([B3], [B65536].End(xlUp)).SpecialCells(xlCellTypeBlanks)
không tồn tại.
 
Cho em hỏi các bác có cách định dạng nào tại 1 ô cell mà khi gõ số la tinh mà nó tự thành số la mã không ạ. Ví dụ gõ 1 thì được I, gõ 2 thì được II... mà không cần gõ =roman(1) hoặc =roman(2).
 
Cho em hỏi các bác có cách định dạng nào tại 1 ô cell mà khi gõ số la tinh mà nó tự thành số la mã không ạ. Ví dụ gõ 1 thì được I, gõ 2 thì được II... mà không cần gõ =roman(1) hoặc =roman(2).
Dùng chức năng AutoCorrect có sẵn mà làm
Cảnh báo: Sau này sẽ không gõ được mấy con số 1, 2, 3... (vì cứ gõ là nó ra số La mã)
 
Cho em hỏi các bác có cách định dạng nào tại 1 ô cell mà khi gõ số la tinh mà nó tự thành số la mã không ạ. Ví dụ gõ 1 thì được I, gõ 2 thì được II... mà không cần gõ =roman(1) hoặc =roman(2).

Trong các ô muốn gõ số đó gõ vào dạng:
#1
#24
#15
Xong kéo chọn vùng chứa các ô đó.

PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cnt As Integer, Rng As Range
    For Each Rng In Target
        If Not Rng.Value = vbNullString Then
            If Left(Rng, 1) = "#" Then
                For cnt = 1 To 100
                    If Right(Rng, Len(Rng) - 1) = cnt Then
                        Rng.Value = Evaluate("Roman(" & cnt & ")")
                            Exit For
                    End If
                Next
            End If
        End If
    Next Rng
End Sub
 
Lần chỉnh sửa cuối:
Trong các ô muốn gõ số đó gõ vào dạng:
#1
#24
#15
Xong kéo chọn vùng chứa các ô đó.

PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cnt As Integer, Rng As Range
    For Each Rng In Target
        If Not Rng.Value = vbNullString Then
            If Left(Rng, 1) = "#" Then
                For cnt = 1 To 100
                    If Right(Rng, Len(Rng) - 1) = cnt Then
                        Rng.Value = Evaluate("Roman(" & cnt & ")")
                            Exit For
                    End If
                Next
            End If
        End If
    Next Rng
End Sub
Dùng sai sự kiện!
Phải là sự kiện Worksheet_Change mới đúng. Tức có gõ thì có chuyển đổi
 
Dùng sai sự kiện!
Phải là sự kiện Worksheet_Change mới đúng. Tức có gõ thì có chuyển đổi
Dạ anh. Dùng theo cách anh chỉ sẽ hợp lý hơn trong trường hợp làm đến đâu định dạng đến đó. Nhưng em thấy hình như Change thì gõ được liền, nó thích hợp khi gõ từng ô. Còn SelectionChange thì thích hợp hơn khi mình áp cho nhiều ô. Chắc trong trường hợp này áp dụng như anh chỉ sẽ thích hợp hơn.
 
Dạ anh. Dùng theo cách anh chỉ sẽ hợp lý hơn trong trường hợp làm đến đâu định dạng đến đó. Nhưng em thấy hình như Change thì gõ được liền, nó thích hợp khi gõ từng ô. Còn SelectionChange thì thích hợp hơn khi mình áp cho nhiều ô. Chắc trong trường hợp này áp dụng như anh chỉ sẽ thích hợp hơn.
Nhiều ô hay 1 ô đều change được cả nhé
 
Web KT

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

Back
Top Bottom