Cố định cột A ở tất cả các Sheet luôn phía trái bảng tính khi mở File (đã thaotác) (1 người xem)

Liên hệ QC

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

CuocTinhChoMaiSau

Thành viên mới
Tham gia
4/1/16
Bài viết
15
Được thích
0
Chào các anh,chị
Giống như tiêu đề, làm sao ta có thể cố định cột A luôn ở bên trái bảng tính ở tất cả các Sheet mỗi khi mở File Excel.
Giống như mỗi khi ta mở 1 File exel mới vậy.
Xin cảm ơn và chúc mọi người 1 mùa xuân mới an lành.
 
Tức là làm sao đó để luôn luôn nhìn thấy được cell A1 (ở tất cả các sheet)

Ý anh hiểu chủ Topic có 1 File với tất cả các sheet có cột A nằm bên phải màn hình (thông thường khi mở bất kỳ File nào thì mặc định cột A luôn luôn nằm bên trái).

Với Excel 2010 thì chỉ chỉnh được riêng cho từng sheet, còn chỉnh 1 lần cho tất cả các sheet thì không được vì không chọn được Workbook, còn Excel 2003, 2007, 2013 anh chưa thử nên chưa biết có chỉnh được 1 lần hay không?
 
Upvote 0
Chào các anh,chị
Giống như tiêu đề, làm sao ta có thể cố định cột A luôn ở bên trái bảng tính ở tất cả các Sheet mỗi khi mở File Excel.
Giống như mỗi khi ta mở 1 File exel mới vậy.
Xin cảm ơn và chúc mọi người 1 mùa xuân mới an lành.

Sau khi thao tác... , rồi tắt file thì vị trí cell đang chọn ở tại các sheet nằm chỗ nào đó không phải là cell A1 (cell A1 bị khuất khỏi màn hình)
và bạn muốn khi mở file lên thì cell A1 ở vị trí như khi mở 1 file Excel mới?
Hiểu vậy không biết đúng ý không..
Bạn chép đoạn sau vào ThisWorkbook:
PHP:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim sh As Worksheet, wh As Worksheet
Set wh = ThisWorkbook.ActiveSheet
For Each sh In ThisWorkbook.Worksheets
    sh.Activate
    sh.Range("A1").Select
Next
wh.Select
Application.ScreenUpdating = True
End Sub
Lưu file (.xls, .xlsm, .xlsb), tắt file rồi mở lại.
 
Upvote 0
Chào bạn befaint
Ý của tôi là khi mở File luôn nhìn thấy Cell A1 ở mọi Sheet.
Code của bạn mới dừng lại ở việc chọn Cell A1 ở mọi Sheet.
Chúc bạn năm mới mọi sự như ý.
 
Upvote 0
Xin hỏi là đứng ở bất kỳ sheet nào cũng nhìn thấy cell A1 của tất cả các sheet trong workbook?
À mà thôi...
Tôi xin nói rõ:
Ví dụ tôi có 10 Sheet, tính từ Sheet1 đến Sheet10. Vậy thì khi tôi mở Sheet1 tôi nhìn thấy Cell A1 của Sheet1, ..., mở Sheet10 tôi cũng nhìn thấy Cell A1của Sheet10.
 
Upvote 0
Tôi xin nói rõ:
Ví dụ tôi có 10 Sheet, tính từ Sheet1 đến Sheet10. Vậy thì khi tôi mở Sheet1 tôi nhìn thấy Cell A1 của Sheet1, ..., mở Sheet10 tôi cũng nhìn thấy Cell A1của Sheet10.
Bạn chép thử đoạn này vào ThisWorkbook:
Mã:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Range("A1").Select
End Sub
 
Upvote 0
Tôi xin nói rõ:
Ví dụ tôi có 10 Sheet, tính từ Sheet1 đến Sheet10. Vậy thì khi tôi mở Sheet1 tôi nhìn thấy Cell A1 của Sheet1, ..., mở Sheet10 tôi cũng nhìn thấy Cell A1của Sheet10.

Bạn nói như thế vẫn chưa rõ:
1. Yêu cần này khác với yêu cầu ban đầu (#1). Mở sheet khác với mở book.
2. Nếu vì lý do nào đó, A1 bị che đi (hidden/filtered, ...) thì sao? có mở nó ra không?

Nếu không hidden, chỉ vỏn vẹn có phím tắt Ctrl+home mà cũng làm biếng ????
 
Upvote 0
Bạn nói như thế vẫn chưa rõ:
1. Yêu cần này khác với yêu cầu ban đầu (#1). Mở sheet khác với mở book.
2. Nếu vì lý do nào đó, A1 bị che đi (hidden/filtered, ...) thì sao? có mở nó ra không?

Nếu không hidden, chỉ vỏn vẹn có phím tắt Ctrl+home mà cũng làm biếng ????
Không phải vì tôi làm biếng như bác nói, có điều tôi đang "thiết kế" 1 File cho người khác dùng. Tôi không muốn khi người dùng mở từng Sheet trong File ra họ không phải dùng bàn phím hay trỏ chuột để tìm tới cột A, B,C... nơi đó là nơi cần bổ sung dữ liệu đầu vào.
Vậy thôi, vì vậy mới cần các bác giúp 1 tay, tự động bằng VBA code.
 
Upvote 0
Không phải vì tôi làm biếng như bác nói, có điều tôi đang "thiết kế" 1 File cho người khác dùng. Tôi không muốn khi người dùng mở từng Sheet trong File ra họ không phải dùng bàn phím hay trỏ chuột để tìm tới cột A, B,C... nơi đó là nơi cần bổ sung dữ liệu đầu vào.
Vậy thôi, vì vậy mới cần các bác giúp 1 tay, tự động bằng VBA code.
Nếu vậy phải ấn định ScrollArea, không nhất thiết phải là A1.
Và nếu cần A1 thì select cũng đã được rồi, tôi đã test code bài #5 và đã đạt, chỉ cần bỏ ScreenUpdating đầu và cuối. Chớp chớp thì phải chịu.
 
Lần chỉnh sửa cuối:
Upvote 0
Không phải vì tôi làm biếng như bác nói, có điều tôi đang "thiết kế" 1 File cho người khác dùng. Tôi không muốn khi người dùng mở từng Sheet trong File ra họ không phải dùng bàn phím hay trỏ chuột để tìm tới cột A, B,C... nơi đó là nơi cần bổ sung dữ liệu đầu vào.
Vậy thôi, vì vậy mới cần các bác giúp 1 tay, tự động bằng VBA code.

Vậy bạn thử cái này, sẽ đóng băng từ A1:C2 của tất cả các sheet có trong File của bạn.

PHP:
Sub DongBang()
Dim sh As Worksheet
Application.ScreenUpdating = False   
   For Each sh In Worksheets      
      sh.Activate      
      Range("D3").Select   
      ActiveWindow.FreezePanes = True   
   Next sh
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin cảm ơn mọi sự chia sẻ của các thành viên. Tuy nhiên những đoạn Code trên vẫn chưa tháo gỡ được khó khăn của tôi.
 
Upvote 0
Nếu vậy phải ấn định ScrollArea, không nhất thiết phải là A1.
Và nếu cần A1 thì select cũng đã được rồi, tôi đã test code bài #5 và đã đạt, chỉ cần bỏ ScreenUpdating đầu và cuối. Chớp chớp thì phải chịu.

Bác ơi, cái em cần là nhìn thấy, chứ không phải là chọn lấy
 
Upvote 0
Upvote 0
Chắc bạn chủ topic chưa test code (thấy .select nghĩ là chọn) hoặc mọi người chưa hiểu được yêu cầu của bạn đó.
Nên chăng bạn chủ topic biểu đạt rõ ràng, cụ tỉ yêu cầu của mình (chú ý sử dụng đúng thuật ngữ như bài #10 đã nêu).
p/s: Đọc đến bài #17 là chạy rồi. Thấy bài #18 vào "chém" phát cuối.
 
Upvote 0
Activewindow.ScrollRow = 1
Activewindow.ScrollColumn = 1

Nếu A1 khong bị hidden thì sẽ hiện ra bên trái màn hình.
Lỡ cell đang chọn nằm ngoài thì không nhìn thấy con trỏ ráng chịu - người dùng vẫn phải nhấn Ctrl+Home
 
Upvote 0
Bác ơi, cái em cần là nhìn thấy, chứ không phải là chọn lấy
Bạn thử lại 1 lần nữa xem có đúng ý không?
PHP:
Sub SplitGPE()
Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
        sh.Activate
        With ActiveWindow
            .SplitColumn = 1: .SplitRow = 1
        End With
    Next
End Sub
 
Upvote 0
Bạn thử lại 1 lần nữa xem có đúng ý không?
PHP:
Sub SplitGPE()
Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
        sh.Activate
        With ActiveWindow
            .SplitColumn = 1: .SplitRow = 1
        End With
    Next
End Sub
Không phải như vậy bác be09.
Ai cũng hiểu chỉ 1 người không hiểu, đó là tôi?
Có lẽ Code không xong thì phải dùng Ctrl +Home cho từng Sheet thôi.
 
Upvote 0
Tóm lại là tất cả phương pháp trên đây đều chạy đúng: chọn A1 và cho thấy A1. Chỉ có điều nếu dùng ScreeenUpdating = False thì màn hình không cập nhật chuyện "thấy". Tiếc là chủ topic hoặc không biết cách test, hoặc chỉ đọc mà không test.
 
Upvote 0
Mời bạn xem file. Nếu không đúng thì :cold:

Cảm ơn bạn befaint.
Đây đúng là cái tôi cần.
Trước đó tôi đã thử tất cả các Code của các bạn, nhưng tôi đều nói là chưa đúng cái tôi cần. Bây giờ thì tôi đã biết lý do của nó.
Đó là các Sheets của tôi đều đã ẩn dòng, ẩn cột. Nên khi chạy các Code trên đều không cho kết quả.
Bài toán đến đây đã được giải quyết. Tôi xin cảm ơn tất cả các thành viên đã viết bài trả lời giúp tôi và chúc mọi người 1 năm mới sức khỏe và thành công.
 
Upvote 0
Tóm lại là tất cả phương pháp trên đây đều chạy đúng: chọn A1 và cho thấy A1. Chỉ có điều nếu dùng ScreeenUpdating = False thì màn hình không cập nhật chuyện "thấy". Tiếc là chủ topic hoặc không biết cách test, hoặc chỉ đọc mà không test.

Chủ thớt có nói "không muốn chọn A1".
ScrollColumn và ScrollRow là cách mà tôi biết để buộc bảng tính phải scroll về nơi mình muốn, và đồng thời vẫn giữ nguyên activecell

Các bạn có thể vào cửa sổ immediate để thử như sau:

[Z500].activate ' cell A1 sẽ biến khỏi màn hình
activewindow.ScrollColumn = 1: activewindow.ScrollRow = 1 ' cell A1 sẽ hiện trở lại màn hình
? activecell.Address ' đáp số: $Z$500 --> cell được chọn vẫn là Z500

Tôi đã từng:
1. nhắc nhở chủ thớt giải thích cho rõ ý của mình, trường hợp A1 bị ẩn thì sao?
2. giới thiệu kỹ thuật hiện cell mà không cần chọn
Nhưng chủ thớt chỉ biết tự ái vặt cái từ "lười biếng" mà không chịu đọc cho kỹ.

tb. Crtl+Home trogn VBA là Application.SendKeys "^{Home}"
 
Upvote 0
Mình nghĩ bạn có thể sử dụng tính năng Watch Window trong Excel//**/ đỡ phải code --=0
 
Upvote 0

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

Back
Top Bottom