Link nhanh từ cell đến cell

Liên hệ QC

hong loi

Thành viên hoạt động
Tham gia
11/1/13
Bài viết
104
Được thích
17
Chào các Thầy các anh, em xin các Thầy các anh trợ giúp, em đang gặp bế tắt như sau, em muốn viết code sao cho khi click kép tại ô đã Paste Link , ActiveCell(khung chọn ô) chọn chính xác đến vị trí ô của sheet theo đường dẫn trích từ công thức Paste link của ô đó.


Ví dụ:
Copy vùng A1:A5 của sheet2 rồi dán theo kiểu Paste special / Paste Link tại A2 của sheet TongHop,tương tự copy vùng B1:B7 của sheet3 dán Paste Link tại A7 của sheet TongHop ta được vùng dử liệu từ A2:A13 là nơi chứa các công thức từ việc Paste Link.

Điều mong muốn:
Tại sheet TongHop nếu click kép vào A2 --> khung chọn ô(activecell) theo đường dẫn công thức tại A2 là Sheet2!A1 chọn đúng ô A1 của sheet2, tương tự tại TongHop nếu click kép vào A4 --> khung chọn theo đường dẫn Sheet2!A3 chọn đúng ô A3 của sheet2, tại sheet TongHop nếu click kép vào A9 --> khung chọn theo đường dẫn Sheet3!B3 chọn đúng ô B3 của sheet3
....

Để thực hiện được ý đồ này em nhận xét tại những ô có Paste Link (vùng A2:A13 của TongHop) điều có công thức: dấu =, tên sheet, dấu ! , tên ô ( ví dụ =Sheet2!A3 )

Như vậy nếu có một hàm hay code nào đó có thể nhận dạng công thức Paste Link rồi lọc trích ra tên sheet và tên ô ghép vào code này Sheets(tênSheet). Range(tên ô).Select sẻ dạt được mong muốn trên.

Code mô phỏng:

Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim TenSh, TenCell As String
 If Target.Column = 1 Then
    If Target <> "" Then
    
    [COLOR=#ff0000]'Hàm hay code trích xuất tên sheet tên ô từ công thức Paste Link đang cần trợ giúp[/COLOR]
        
        Sheets("TenSh").Range("TenCell").Select
        End If
    End If
End Sub
 

File đính kèm

  • Paste link.xls
    28 KB · Đọc: 12
Lần chỉnh sửa cuối:
Sao không thấy ai giúp em vậy ta ?

Em có ý nghĩ này trước hết mình chuyển công thức tại ô (A1) click kép chuyển thành dạng text sang cột C với code
Target.Offset(, 2) = "'" & Target.Formula

Tiếp đến dùng hàm Left , Right hay hàm Len gì đó cắt bỏ 2 ký tự đầu '= còn lại sheet(tênSheet)!tênCell lại dùng hàm Len(hay hàm gì đó) cắt rời phần sheet(tênSheet) trước dấu ! và tênCell sau dấu !

Cuối cùng ghép chúng lại thành code

Sheets("tênSheet").Range("tênCell").Select

Không biết có đúng vậy không ? vì đây mới là ý nghĩ chưa biết thực tế có làm được như thế không xin mọi người chỉ dạy cho em. Em rất cám ơn ạ.
 
Vầy thử xem:
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  On Error Resume Next
  If Target.Column = 1 Then
    If Target.HasFormula Then
      Application.Goto Evaluate(Target.Formula)
      Cancel = True
    End If
  End If
End Sub
 
Vầy thử xem:
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  On Error Resume Next
  If Target.Column = 1 Then
    If Target.HasFormula Then
      Application.Goto Evaluate(Target.Formula)
      Cancel = True
    End If
  End If
End Sub


Rất xuất sắc bách click bách trúng luôn thầy ạ :clap2::clap2::clap2::clap2: ! Code chạy nhanh nhẹ không ngờ luôn. Em quả là có diễm phúc được Thầy giúp thêm lần nữa, em rất cám ơn Thầy.
 
Web KT

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

Back
Top Bottom