khi bấm enter, con trỏ tự động chuyển đến cột đầu tiên hoặc đến ô mặc định

Liên hệ QC

khanhnth02

Thành viên thường trực
Tham gia
5/8/07
Bài viết
324
Được thích
35
làm thế nào để khi bấm enter, con trỏ tự động chuyển đến cột đầu tiên hoặc đến ô mặc định, sẽ dùng hàm macro như thế nào vậy các anh chị. xin chân thành cảm ơn
 
Dear Bác!
Cảm ơn Bác đã giúp đỡ. Từ "Khay 1" Chuyển xuống "Khay 2" từ K13 đến vị trí B17 có làm được không ạ? Và nếu áp dụng cho Bảng B cùng với bảng A được không Ạ?
Trân trọng cảm ơn!
Bạn muốn nhập dữ liệu vào KHAY 2, thì bạn đặt con trỏ chuột vào B17, sau đó nhập dữ liệu vào bình thường.
Tương tự cho KHAY nào đó bạn đặt con trỏ chuột vào Cell đầu tiên của KHAY đó ......
 
Upvote 0
Bạn muốn nhập dữ liệu vào KHAY 2, thì bạn đặt con trỏ chuột vào B17, sau đó nhập dữ liệu vào bình thường.
Tương tự cho KHAY nào đó bạn đặt con trỏ chuột vào Cell đầu tiên của KHAY đó ......
Cảm ơn bác nhiều. Vậy nếu áp dụng cho Bảng B thì mình lồng ghép hàm VBA như thế nào ạ?
Thanks!
 
Upvote 0
Cảm ơn bác nhiều. Vậy nếu áp dụng cho Bảng B thì mình lồng ghép hàm VBA như thế nào ạ?
Cảm ơn!
Bạn thử:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    'BANG A
    If Target.Count = 1 Then
        If Target.Column = 2 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 3 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 4 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 5 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 6 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 7 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 8 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 9 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 10 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 11 Then
            Target.Offset(1, -9).Select
        End If
        ' BANG B
          If Target.Column = 14 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 15 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 16 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 17 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 18 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 19 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 20 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 21 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 22 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 23 Then
            Target.Offset(1, -9).Select
        End If
    End If
End Sub
 
Upvote 0
Bạn thử:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    'BANG A
    If Target.Count = 1 Then
        If Target.Column = 2 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 3 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 4 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 5 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 6 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 7 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 8 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 9 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 10 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 11 Then
            Target.Offset(1, -9).Select
        End If
        ' BANG B
          If Target.Column = 14 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 15 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 16 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 17 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 18 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 19 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 20 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 21 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 22 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 23 Then
            Target.Offset(1, -9).Select
        End If
    End If
End Sub
Cảm ơn bác nhiều ạ!
 
Upvote 0
Bạn không muốn code nó mộc mạc hơn sao
----------------------------
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then
    Dim I%
    For I = 2 To 11
      Select Case Target.Column
        Case I, I + 12: Target(1, IIf(I = 11, -8, 2).Select: Exit For
      End Select
    Next
  End If
  Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn không muốn code nó mộc mạc hơn sao
----------------------------
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then
    Dim I%
    For I = 2 To 11
      Select Case Target.Column
        Case I, I + 12: Target.Offset(0, IIf(I = 11, -9, 1)).Select: Exit For
      End Select
    Next
  End If
  Application.EnableEvents = True
End Sub
Chắc bạn chưa Test thử trước khi gửi bài, vì nó chưa đúng ý chủ Topic.
 
Upvote 0
Chắc bạn chưa Test thử trước khi gửi bài, vì nó chưa đúng ý chủ Topic.
Vì nhìn thấy code cần rút gọn , chớ chưa đọc qua bài của bạn ấy

Bác phulien1902 có thể tóm tắc 1 tí không?

-------------------------------------------
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then
      Select Case Target.Column
        Case 2 to 10, 14 to 22:Target(1,  2).Select
        Case 11, 23:Target(1, -8).Select    
      End Select
  End If
  Application.EnableEvents = True
End Sub
 
Upvote 0
Vì nhìn thấy code cần rút gọn , chớ chưa đọc qua bài của bạn ấy

Bác phulien1902 có thể tóm tắc 1 tí không?

-------------------------------------------
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then
      Select Case Target.Column
        Case 2 to 10, 14 to 22:Target(1,  2).Select
        Case 11, 23:Target(1, -8).Select   
      End Select
  End If
  Application.EnableEvents = True
End Sub
Vẫn chưa được.
 
Upvote 0
Chắc sẽ được. toanxn

Không có giới hạn Khay, mà thực hiện cho đến giới hạn của Excel, Đặt LimitTable để giới hạn

PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then Call MoveZigZag(10, 10, Target, [B4], 4)
  Application.EnableEvents = True
End Sub
Sub MoveZigZag(Row%, Col%, LRNG As Range, Rng As Range,Optional LimitTable&)
  Dim X&, Y&, LRow&, LCol&, tX&, tY&
  Dim dX&, WF As WorksheetFunction
  Set WF = Application.WorksheetFunction
  X = Rng.Row - 1:   Y = Rng.Column - 1
  LRow = LRNG.Row:   LCol = LRNG.Column
  If LRow = Rows.Count Then Exit Sub
  dX = WF.RoundDown(LRow / (Row + X), 0)
  tX = dX * Row + dX * X + X
  tY = IIf(LCol - Y < Col + Y + 2, 0, Col + 2) + Y
  Select Case LCol
    Case 1 + tY To Col + tY - 1: Rng(LRow - X, LCol).Select
    Case Col + tY:
      If tX = LRow + X Then
        If LCol = Col + Y Then
          Rng(tX - Row - X - 2, LCol + tY + 1).Select
        Else
          If dX = LimitTable And LimitTable > 0 Then _
            LRNG.Select: MsgBox "Ða là ô cuoi' cung`!": Exit Sub
          tY = Y: Rng(tX - X + 1, tY).Select
        End If
      Else
        Rng(LRow - X + 1, tY).Select
      End If
  End Select
End Sub
Copy vào module để kiểm tra
PHP:
Sub test()
  Dim I
  [B4].Select
  For I = 1 To 1000
    Selection(1, 1).Value = I
    DoEvents
  Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin các cao thủ giải giúp bài này.
Đã nghiên cứu mãi 1 đêm mà ko ra cách giải..... Vô cùng biết ơn. Trân trọng
Bài đã được tự động gộp:

Như bài trên, nhưng mở rộng ra nhiều Khay, mỗi Khay 96 vị trí như vậy, và cho chạy lần lượt từng khay , với số Khay được sinh ra tự động, mỗi khay cách nhau 2 dòng.... Trân trọng
 

File đính kèm

  • 2021-03-05_215219.jpg
    2021-03-05_215219.jpg
    48.8 KB · Đọc: 9
Upvote 0
Web KT

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

Back
Top Bottom