Làm sao tạo số thứ tự theo ô?

Liên hệ QC

thienthanbe

Thành viên mới
Tham gia
27/10/08
Bài viết
43
Được thích
2
Các bác ơi, em là lính mới, các bác giúp em vấn đề này nhé.
Em muốn viết 1 marco trong đó có 1 biến i chạy từ 1 đến n với 1 giá trị của biến i viết vào ô Ai giá trị i+3
các bác giúp em với
 
For i =1 to n
cells(i,1).value = i+3
next i

Bạn nhớ phải định nghĩa biến i và n (n phải xác định)
 
Upvote 0
Thử cái này xem:
PHP:
Sub Test()
  Dim i As Long
  For i = 1 To 20
    Cells(i, 1) = i + 3
  Next
End Sub
Tuy nhiên vẩn còn nhiều cách khác nhanh, gọn hơn For
Bạn có thể cho biết bạn định làm cụ thể việc gì? Nếu có file đính kèm thì dể "xử" hơn

Hảy thử 2 đoạn code này:
Code 1:
PHP:
Sub STT1()
  Dim i As Long
  For i = 1 To 65536
    Cells(i, 1) = i + 3
  Next
End Sub
Code 2:
PHP:
Sub STT2()
  With Range("B1:B65536")
    .Value = Evaluate("Row(1:65536)+3")
  End With
End Sub
Kết quả thì như nhau nhưng tốc độ thì khác xa
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Thử cái này xem:

Bạn có thể cho biết bạn định làm cụ thể việc gì? Nếu có file đính kèm thì dể "xử" hơn
Cụ thể em muốn làm như thế này nè bác.
nhập vào số n>4
cho biến i chạy từ 4 tới n
chọn vùng (Ai:Ei) cho vùng này có nền xanh dương
Tại ô Ai có giá trị i-3
Tại ô Bi lấy ngày hiện tại
Tại ô Di có giá trị 4%
Bác giúp em với nhe.Cảm ơn bác.
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Cụ thể em muốn làm như thế này nè bác.
nhập vào số n>4
cho biến i chạy từ 4 tới n
chọn vùng (Ai:Ei) cho vùng này có nền xanh dương
Tại ô Ai có giá trị i-3
Tại ô Bi lấy ngày hiện tại
Tại ô Di có giá trị 4%
Bác giúp em với nhe.Cảm ơn bác.
Tôi đoán bạn muốn tạo 1 DS với số dòng ấn định trước!
Vậy thì làm vầy nha:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Address = "$K$1" Then
    [A3].CurrentRegion.Offset(1).ClearContents
    With [A4].Resize(Target)
      .Value = Evaluate("Row(1:" & Target.Value & ")")
        With .Offset(, 1)
          .Value = Int(Now): .NumberFormat = "dd/mm/yyyy"
        End With
        With .Offset(, 3)
          .Value = 4: .NumberFormat = "# ""%"""
        End With
    End With
  End If
End Sub
Cứ gõ số dòng bạn cần vào cell K1, code chạy xong sẽ thiết kế theo ý bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tôi đoán bạn muốn tạo 1 DS với số dòng ấn định trước!
Vậy thì làm vầy nha:
Cứ gõ số dòng bạn cần vào cell K1, code chạy xong sẽ thiết kế theo ý bạn
Em cám ơn bác nhưng em mới học VB được vài ngày mà vì tự học nên còn gà lắm, nhìn code của bác em loạn hết óc chẳng hiểu gì mấy, bác có cách nào dể hiểu hơn không?

Bác giúp em đoạn code select vùng (Ai:Ei) và cho vùng này chuyển sang màu xanh được kô ạ
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Em cám ơn bác nhưng em mới học VB được vài ngày mà vì tự học nên còn gà lắm, nhìn code của bác em loạn hết óc chẳng hiểu gì mấy, bác có cách nào dể hiểu hơn không?
Ái chà... tôi cũng mới học VBA thôi nên tôi nghĩ cách tôi làm là dể hiểu lắm rồi đấy!
Bạn cố lên, tham khảo tài liệu tại đây nhé:
http://www.giaiphapexcel.com/forum/showthread.php?t=650
Tôi còn đang nghĩ thêm hướng phát triển mới cho code này:
- Nhập 1 giá trị tại K1, nó tạo ra 1 bảng với số dòng = K1
- Thay đổi giá trị tại K1, nó tạo ra 1 bảng mới nối dài bảng tính củ
- Mổi lần thay đổi K1 thì 1 bảng được tạo ra có màu khác với bảng củ (cho dể phân biệt)
vân vân và vân vân... Khá dể cho mấy trò biến hóa này

Bác giúp em đoạn code select vùng (Ai:Ei) và cho vùng này chuyển sang màu xanh được kô ạ
Rất đơn giản như vầy đây:
PHP:
Sub Chon()
  With Range("A4").Resize([K1], 5)
    .Interior.ColorIndex = 37
    .Select
  End With
End Sub
Đương nhiên là bạn phải gõ 1 số nào đó vào cell K1, sau đó chạy code
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT

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

Back
Top Bottom