Sau khi chạy code thì trở về vị trí ban đầu (4 người xem)

Liên hệ QC

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

dongducnhiem

Thành viên tiêu biểu
Tham gia
21/3/07
Bài viết
637
Được thích
378
Chào các bạn,
Ban đầu tui đang ở 1 ô bất kỳ (ví dụ ô A5, của sheet Data)
Sau khi tôi chạy code xong, thì con trỏ vẫn ở ô A5, của sheet Data
Không biết cái này có làm được không? Nếu được thì nhờ anh/em giúp đỡ. Cảm ơn nhiều!
 
Chào các bạn,
Ban đầu tui đang ở 1 ô bất kỳ (ví dụ ô A5, của sheet Data)
Sau khi tôi chạy code xong, thì con trỏ vẫn ở ô A5, của sheet Data
Không biết cái này có làm được không? Nếu được thì nhờ anh/em giúp đỡ. Cảm ơn nhiều!
Thì bạn thêm dòng này là được nè. Để ở cuối code ấy
Mã:
sheets("Data").range("A5").select
 
Upvote 0
cho lệnh sau vào đầu sub/ function là được
Application.ScreenUpdating=False
Giả sử bên trong code select tùm lum thì activeCell đã không còn như cũ rồi.
Thì bạn thêm dòng này là được nè. Để ở cuối code ấy
Mã:
sheets("Data").range("A5").select
Nếu trong code đã chạy sang sheet khác thì lệnh Select bị lỗi.

Đầu code:
Mã:
Sheets("Data").Activate
Set StartCell = Sheets("Data").ActiveCell
Cuối code
Mã:
Sheets("Data").Activate
StartCell.Select
 
Upvote 0
Giả sử bên trong code select tùm lum thì activeCell đã không còn như cũ rồi.

Nếu trong code đã chạy sang sheet khác thì lệnh Select bị lỗi.

Đầu code:
Mã:
Sheets("Data").Activate
Set StartCell = Sheets("Data").ActiveCell
Cuối code
Mã:
Sheets("Data").Activate
StartCell.Select
Trong VBA thì người ta kỵ nhất (thực ra là hạn chế nhất) là dùng .select
Ngoại trừ dùng nó có mục đích đúng nghĩa là select -->chuyển activeCell

Song nếu người hỏi là dùng VBA kiểu range.select nhiều thì nên áp dụng bài trên của bác PTM nhé
 
Upvote 0
Set StartCell = Sheets("Data").ActiveCell
Anh có nhầm không? Hình như worksheet không có thuộc tính nào là ActiveCell cả.
Mã:
Sub abc()
    Set rCll = Sheet1.ActiveCell
    '...
    '...
    '...
    rCll.Worksheet.Parent.Activate
    Application.Goto rCll
End Sub
 
Upvote 0
Anh có nhầm không? Hình như worksheet không có thuộc tính nào là ActiveCell cả.
Set rCll = Sheet1.ActiveCell
Đúng là nhầm, Sheets("Data") và cả Sheet1 cũng vậy.
Nếu Đã activate sheet Data rồi thì chỉ cần ActiveCell

Mã:
Sheets("Data").Activate
Set StartCell = ActiveCell
...
Sheets("Data").Activate
StartCell.Select
 
Upvote 0
Thớt chỉ nói là "chạy xong code". Code nào?
Nếu thớt chạy vài cái sub/func thì sao?

Bài này bắt buộc phải dùng biến toàn cục.
Public svRg As String
Public svSheet As String
Public Sub SavePos()
svSheet = ActiveSheet.Name
svRg = ActiveCell.Address
End Sub
Public Sub ReturnToPos()
If svSheet <> "" And svRg <> "" Then
Sheets(svSheet),Activate
Range(svRg).Select
End If
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom