Giúp em viết code 2 bài này với ! (1 người xem)

Liên hệ QC

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

Status
Không mở trả lời sau này.

akayzai1

Thành viên mới
Tham gia
18/10/13
Bài viết
34
Được thích
1
1)Cho vùng bảng tính A1...G7 có chứa các số bất kỳ .chuyển các ô có giá trị âm sang sheet khác( giữ nguyên địa chỉ tương ứng).
2)Chọn 1 vùng bảng tính bất kỳ, tô màu xanh các hàng có số thứ tự lẻ, màu vàng các hàng có số thứ tự chẵn.
Em cảm ơn các anh giúp đỡ .
 
1)Cho vùng bảng tính A1...G7 có chứa các số bất kỳ .chuyển các ô có giá trị âm sang sheet khác( giữ nguyên địa chỉ tương ứng).
2)Chọn 1 vùng bảng tính bất kỳ, tô màu xanh các hàng có số thứ tự lẻ, màu vàng các hàng có số thứ tự chẵn.
Em cảm ơn các anh giúp đỡ .
Gợi ý 1 cách câu 1 nhé:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range, Str As String
Set Rng = Sheet1.Range("A1:G7")
For Each Cll In Rng
    If Cll.Value < 0 Then
        Str = Cll.Address
        Sheet2.Range(Str).Value = Cll.Value
    End If
Next Cll
Set Rng = Nothing
End Sub
Câu 2 bạn viết thử đi, sai đâu hỏi đó.
 
Upvote 0
Bài 1 em chạy ok rồi, Bác gợi ý giúp em bài 2 cách tô màu cho các hàng có số thứ tự lẻ & chẵn.
 
Upvote 0
Gợi í bài II:
PHP:
Option Explicit
Sub GPE()
 Dim Rws As Long, Col As Integer, Cls As Range
  
 Rows("1:200").Interior.ColorIndex = 2:          Randomize
 Col = 9 + Rnd() * 20 \ 1
 Rws = 9 + 90 * Rnd() \ 1
 For Each Cls In Cells(2, 2).Resize(Rws)
    If Cls.Row Mod 4 = 3 Then _
        Cls.Resize(, Col).Interior.ColorIndex = 35 + (Col Mod 9)
 Next Cls
End Sub
 
Upvote 0
nếu em muốn chọn trong một vùng bất kỳ thì phải khai báo thế nào ạ
 
Upvote 0
nếu em muốn chọn trong một vùng bất kỳ thì phải khai báo thế nào ạ
Bạn muốn trả lời hoặc hỏi ai thì trích dẫn bài viết của người đó để họ biết là bạn trả lời (hoặc hỏi tiếp) theo mạch bài viết của họ.
 
Upvote 0
Option Explicit
Sub GPE()
Dim Rws As Long, Col As Integer, Cls As Range
Col = 9 + Rnd() * 20 \ 1
Rws = 9 + 90 * Rnd() \ 1
For Each Cls In Selection
If Cls.Row Mod 2 = 1 Then
Cls.Interior.Color = vbGreen
End If
If Cls.Row Mod 2 = 0 Then
Cls.Interior.Color = vbYellow
End If
Next Cls
End Sub
Em sửa code như vậy các bác cho em ý kiến
 
Upvote 0
Option Explicit
Sub GPE()
Dim Rws As Long, Col As Integer, Cls As Range
Col = 9 + Rnd() * 20 \ 1
Rws = 9 + 90 * Rnd() \ 1
For Each Cls In Selection
If Cls.Row Mod 2 = 1 Then
Cls.Interior.Color = vbGreen
End If
If Cls.Row Mod 2 = 0 Then
Cls.Interior.Color = vbYellow
End If
Next Cls
End Sub
Em sửa code như vậy các bác cho em ý kiến
2 dòng này đâu tác dụng gì trong code?
Col = 9 + Rnd() * 20 \ 1
Rws = 9 + 90 * Rnd() \ 1
Xem thêm cái này rồi tự ngẫm nghĩ để chọn cách viết phù hợp.
PHP:
Sub GPE()
Dim Cls As Range, Rng As Range, Col As Long
Set Rng = Selection.Resize(, 1)
Col = Selection.Columns.Count
For Each Cls In Rng
    If Cls.Row Mod 2 > 0 Then
        Cls.Resize(, Col).Interior.ColorIndex = 20
    Else
        Cls.Resize(, Col).Interior.ColorIndex = 36
    End If
Next Cls
Set Rng = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em sửa code như vậy các bác cho em ý kiến
PHP:
Option Explicit
Sub GPE()
 Dim Rws As Long, Col As Integer, Cls As Range
 
3 Col = 9 + Rnd() * 20 \ 1
 Rws = 9 + 90 * Rnd() \ 1
 For Each Cls In Selection
    If Cls.Row Mod 2 = 1 Then
        Cls.Interior.Color = vbGreen
8    End If
    If Cls.Row Mod 2 = 0 Then
        Cls.Interior.Color = vbYellow
    End If
 Next Cls
End Sub

(*) Muốn xài hàm Rnd() trong VBA, trước đó ta nên xài câu lệnh
Randomize

(*) Câu lệnh 8 & 9 (dưới nó) bạn có thể gộp lại được đó, thử coi bằng cách nào?!
(*) Mà câu lệnh 3 & 4 có thể dư rồi đó bạn!

Tham khảo thêm macro sau:

PHP:
Option Explicit
Sub InputBoxWithCells()
 Dim Rng As Range
 Set Rng = Application.InputBox("Hay Chon Vùng Bát Kì: ", "GPE", Type:=8)
 MsgBox Rng.Address
 
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Status
Không mở trả lời sau này.

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

Back
Top Bottom