Xin 1 vài Code đơn giản để hiểu về Used Range là gì (1 người xem)

  • Thread starter Thread starter 597335
  • Ngày gửi Ngày gửi
Liên hệ QC

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

597335

Thành viên hoạt động
Tham gia
19/2/12
Bài viết
126
Được thích
29
Đọc một số bài trên diễn đàn nhưng em chưa hiểu lắm về Used Range. Xin các anh, chị trên diễn đàn cho em một vài ví dụ đơn giản để em hiểu về khái niệm này
 
Nhập thế này vào và chạy code thử se biết công dụng liền
usedrange.select
hoặc
usedrange.copy
 
Upvote 0
Em định diễn đạt ô A1 trong tất cả các Sheet đều bằng 8. Nhưng chạy sai

PHP:
Sub Choi()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
[A1] = 8
Next
End Sub

Xin hỏi cách sửa chỗ sai giúp em với ah.
 
Upvote 0
Bạn phải thêm Sh.[A1] thì mới đúng
PHP:
Sub Choi()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.[A1] = 8
Next
End Sub
 
Upvote 0
Bạn sửa thế này coi :
PHP:
Sub Choi1()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.[A1] = 8
Next
End Sub
Hoặc thế này :
PHP:
Sub Choi()
    Dim i As Long
    For i = 1 To Sheets.Count
    Sheets(i).[A1] = 8
    Next
End Sub
 
Upvote 0
Em định diễn đạt ô A1 trong tất cả các Sheet đều bằng 8. Nhưng chạy sai

PHP:
Sub Choi()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
[A1] = 8
Next
End Sub

Xin hỏi cách sửa chỗ sai giúp em với ah.
Về For.. Next thì các bạn khác đã sửa rồi
Riêng với bài này của bạn, tôi sẽ viết thế này
PHP:
Sub Choi()
  Range("A1").Value = 8
  Sheets.FillAcrossSheets Range("A1"), 2
End Sub
Ẹc... Ẹc...
 
Upvote 0
Em muốn xóa cột A đi truớc khi thêm, nhưng cũng không chạy

PHP:
Sub Choi()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.Range("A:A").ClearContens
Sh.[A1] = 8
Next
End Sub

Xin hỏi phải sửa thế nào cho đúng bây giờ
 
Upvote 0
Em muốn xóa cột A đi truớc khi thêm, nhưng cũng không chạy

PHP:
Sub Choi()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Sh.Range("A:A").ClearContens
Sh.[A1] = 8
Next
End Sub

Xin hỏi phải sửa thế nào cho đúng bây giờ
Viết sai chữ ClearContens ---> Phải là vầy : ClearContents (thiếu chữ t)
 
Upvote 0
Các anh, chị kiến thức về lập trình rất chuyên sâu, xin hãy lấy giùm em một vài ví dụ đơn giản để em hiểu về Used Range với ah.
 
Upvote 0
Upvote 0
Các anh, chị kiến thức về lập trình rất chuyên sâu, xin hãy lấy giùm em một vài ví dụ đơn giản để em hiểu về Used Range với ah.

Bạn cứ thí nghiệm, tự nhiên sẽ biết. Ví dụ thế này:
- Mở 1 file Excel mới
- Gõ 1 ít dữ liệu vào bảng tính
- Chạy code này
PHP:
Sub Test_UsedRange()
  With ActiveSheet.UsedRange
    .Select
    MsgBox .Address
  End With
End Sub
- Thêm bớt dữ liệu rồi chạy lại code để kiểm chứng
 
Upvote 0
Em viết Code sau nó báo lỗi, tự nghiên cứu mãi không sửa được, lại xin nhờ các bác sửa dùm:
PHP:
Sub Timhieu()
With Sheets("Sheet1")
.Move Before:=Sheets(1)
.Select
Sheets("Sheet2").[1:1].Copy.[A1]
End With
End Sub
 
Upvote 0
Bạn cứ thí nghiệm, tự nhiên sẽ biết. Ví dụ thế này:
- Mở 1 file Excel mới
- Gõ 1 ít dữ liệu vào bảng tính
- Chạy code này
PHP:
Sub Test_UsedRange()
  With ActiveSheet.UsedRange
    .Select
    MsgBox .Address
  End With
End Sub
- Thêm bớt dữ liệu rồi chạy lại code để kiểm chứng

Tức nó là toàn bộ vùng có chứa dữ liệu trên màn hình Sheet đang chọn phải không ah.

Bác Ndu: Xin hãy giúp em một tình huống nữa bằng cách thay đổi ActiveSheet bằng đối tượng khác được không ah?
 
Lần chỉnh sửa cuối:
Upvote 0
KHi muốn hỏi vấn đề gì liên quan đến CODE tốt nhất bạn nên miêu tả rõ yêu cầu bạn muốn làm gì hoặc đưa file đính kèm lên để mọi người sửa giúp bạn nhanh hơn.
Chỗ này :Sheets("Sheet2").[1:1].Copy. [A1]
Bạn sửa thành
Sheets("Sheet2").[1:1].Copy .[A1]
Tớ không rành về CODE lắm, hic
 
Lần chỉnh sửa cuối:
Upvote 0
Tức nó là toàn bộ vùng có chứa dữ liệu trên màn hình Sheet đang chọn phải không ah.
?
Dịch tiếng Anh cũng hiểu mà: Used là đã dùng, UsedRange là 1 vùng hình chữ nhất "bao" toàn bộ các cell bạn đã sử dụng qua. Thế thôi
Bác Ndu: Xin hãy giúp em một tình huống nữa bằng cách thay đổi ActiveSheet bằng đối tượng khác được không ah?
Muốn biết "cái gì" được hay không, cứ thí nghiệm sẽ có câu trả lời
------------------
Em viết Code sau nó báo lỗi, tự nghiên cứu mãi không sửa được, lại xin nhờ các bác sửa dùm:
PHP:
Sub Timhieu()
With Sheets("Sheet1")
.Move Before:=Sheets(1)
.Select
Sheets("Sheet2").[1:1].Copy.[A1]
End With
End Sub
Chổ này Sheets("Sheet2").[1:1].Copy.[A1] dính 1 chùm sao mà chạy
Sửa lại Sheets("Sheet2").[1:1].Copy .[A1] (có dấu cách sau chữ copy)
 
Lần chỉnh sửa cuối:
Upvote 0
Hôm nay phiền các bác nhiều quá, nhưng em thực sự rất thích học nó, em lại xin giúp sửa lại giúp cho

PHP:
Sub Test_UsedRange()
  With ActiveSheet.UsedRange
    .Select
    .ColorIndex = 3
  End With
End Sub

Sao em không thấy vùng dữ liệu bôi màu đỏ nhỉ?
 
Upvote 0
Hôm nay phiền các bác nhiều quá, nhưng em thực sự rất thích học nó, em lại xin giúp sửa lại giúp cho

PHP:
Sub Test_UsedRange()
  With ActiveSheet.UsedRange
    .Select
    .ColorIndex = 3
  End With
End Sub

Sao em không thấy vùng dữ liệu bôi màu đỏ nhỉ?
Sai dòng: .ColorIndex = 3
Sửa thành vầy: .Interior.ColorIndex = 3 nếu muốn tô màu nền
Và sửa thành vầy: .Font.ColorIndex = 3 nếu muốn tô màu font chữ
 
Upvote 0
Dịch tiếng Anh cũng hiểu mà: Used là đã dùng, UsedRange là 1 vùng hình chữ nhất "bao" toàn bộ các cell bạn đã sử dụng qua. Thế thôi

Muốn biết "cái gì" được hay không, cứ thí nghiệm sẽ có câu trả lời
------------------

Chổ này Sheets("Sheet2").[1:1].Copy.[A1] dính 1 chùm sao mà chạy
Sửa lại Sheets("Sheet2").[1:1].Copy .[A1] (có dấu cách sau chữ copy)


Bác Ndu siêu quá, nhưng tôi thấy trong cửa sổ Code bình thường nó tự tạo dấu cách cho mình nếu mình "lỡ quên", sao trường hợp này nó không hộ nhỉ?

Xin hỏi dấu cách trong trường hợp này có ý nghĩa là gì vậy?
 
Upvote 0
Chổ này Sheets("Sheet2").[1:1].Copy.[A1] dính 1 chùm sao mà chạy
Sửa lại Sheets("Sheet2").[1:1].Copy .[A1] (có dấu cách sau chữ copy)

Sao em thử thế này (cũng dấu cách hẳn hoi) thì nó lại hỏng bác ah

PHP:
Sub Timhieu()
With Sheets("Sheet1")
.Move Before:=Sheets(1)
.Select
[A2].Copy. [A1]
End With
End Sub
 
Upvote 0
Bác Ndu siêu quá, nhưng tôi thấy trong cửa sổ Code bình thường nó tự tạo dấu cách cho mình nếu mình "lỡ quên", sao trường hợp này nó không hộ nhỉ?

Xin hỏi dấu cách trong trường hợp này có ý nghĩa là gì vậy?
Xem lại code:
PHP:
Sub Timhieu()
With Sheets("Sheet1")
.Move Before:=Sheets(1)
.Select
Sheets("Sheet2").[1:1].Copy .[A1]
End With
End Sub
Dòng Sheets("Sheet2").[1:1].Copy .[A1] có nghĩa là Copy dòng 1 của sheet2, paste vào cell A1 của sheet1.
Lưu ý rằng trước [A1] có dấu chấm, có nghĩa là [A1] chịu ảnh hưởng của With phía trên (ở trên là With Sheets("Sheet1")) ---> Tức .[A1] ở đây muốn nói rằng cell A1 là của Sheet1
Vậy nếu viết rõ ra (không có With) thì sẽ như vầy:
PHP:
Sub Timhieu()
  Sheets("Sheet1").Move Before:=Sheets(1)
  Sheets(1).Select
  Sheets("Sheet2").[1:1].Copy Sheets("Sheet1").[A1]
End Sub
Ở đây, nếu không có dấu cách sau chữ Copy thì biết đoạn code ấy là cái giống gì đây?
Hoặc rõ hơn nữa
PHP:
Sub Timhieu()
  Sheets("Sheet1").Move Before:=Sheets(1)
  Sheets(1).Select
  Sheets("Sheet2").[1:1].Copy
  Sheets("Sheet1").[A1].PasteSpecial
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom