Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c8]) Is Nothing Then _
Sheets(Target.Value).Select
End Sub
Xem file đính kèm nàyAnh NDU có thể nói rõ hơn được không vì em thấy cái hyperlink thì dùng 1 button liên kết với 1 sheet chứ nó đâu có tác động đến list
Xem file đính kèm này
- Bạn chọn 1 giá trị nào đó trong list
- Bấm vào cell chứa list lần nữa
(Cái này nói nhiều trên GPE rồi mà)
Sau khi đặt name xong, click phải chuột vào cell C8, chọn Hyperlink (hoặc bấm Ctrl + K) ---> Bấm nút Existing File or Web Page ---> Gõ vào khung Address chữ #Link (với Link là tên của name vừa đặt)Anh ndu96081631 chỉ em làm sao để đưa name Link vào HyperLink với.
Xem file nàyAnh NDU giúp em cái vụ button chạy theo mỗi lần mình kéo trong sheet được không vậy
Chưa hiểu lắm nhưng đoán chắc là bạn muốn vầy:Sao không ai giúp em cái vụ Ctrl+F (edit\find) vậy . Em dùng macro rồi nhưng nó không chịu chạy bảng find and replace . Mấy anh giúp em một tay đi . Cảm ơn nhiều
Private Sub CommandButton1_Click()
Application.Goto Sheet1.Range("B:B")
Application.Dialogs(xlDialogFormulaReplace).Show
End Sub
Private Sub CommandButton1_Click()
Application.Goto Sheet1.Range("B:B")
Application.CommandBars("Edit").Controls("Replace...").Execute
End Sub
Dùng công thức được không?Các bác giúp em với , em có 1 số yêu cầu nho nhỏ như thế này :
1)Em có 1 sheet quản lý ở đây sẽ lấy tất cả dữ liệu của các sheet còn lại , Khi em bấm vào nút quản lý thì nó tự động lấy tên của các sheet điền vào ô A4
2)Tại ô B3 tất cả các sheet kia sẽ được viết bằng 1 hàm=max(b5:b100)
3)tại sheet quản lý sẽ được xếp hạng tùy theo điểm của từng người
Muốn code thì có code:Dạ không phải vậy anh NDU ơi , vì cái file em cấn xử lý nó có rất nhiều sheet , với lại công việc lặp đi lặp lại với rất nhiều file nên em cần có đoạn code đó , nếu làm công thức không thì phải xử lý lặp đi lặp lại có vẽ không khoa học nên em mới nhờ anh viết dùm em
Mong sớm nhận được sự hồi âm của anh
Sub Quanly()
Dim QL As Worksheet, i As Long
Set QL = Sheets("Qu" & ChrW(7843) & "n lý")
QL.Range("A4:C1000").ClearContents
For i = 1 To Sheets.Count
If Sheets(i).Name <> QL.Name Then
Sheets(i).Range("B3").Value = "=Max(B5:B1000)"
QL.Range("A" & i + 3) = Sheets(i).Name
QL.Range("B" & i + 3) = Sheets(i).Range("B3").Value
QL.Range("C" & i + 3) = "=IF(RC[-2]="""","""",RANK(RC[-1],R4C[-1]:R1000C[-1]))"
End If
Next
End Sub
Tự nghiên cứu đi, code để sort đâu có khó khăn gì ---> có thể dùng công cụ record macro làm thửDạ rất đúng ý em nhưng Anh NDU ơi hình như còn thiếu phần sắp xếp từ cao tới thấp nữa . Dù sao cũng cảm ơn Anh nhiều nha
Gợi ý về record macroTại em thấy cái code của anh viết rất đẹp tự nhiên bây giờ cho thêm cái macro vào nữa nhìn nó không hay . Dù sao cũng thanks anh nhiều
Sub Macro1()
Range("A4").Select
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("C4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Sub Macro1()
Range("A4").Select
Selection.CurrentRegion.Select
Selection.Sort Range("C4"), 1, Header:=xlGuess
End Sub
Sub Macro3()
With Range("A4").CurrentRegion
.Sort .Cells(1, 3), 1
End With
End Sub
Sub Quanly()
Dim QL As Worksheet, i As Long
Set QL = Sheets("Qu" & ChrW(7843) & "n lý")
QL.Range("A4:C1000").ClearContents
For i = 1 To Sheets.Count
If Sheets(i).Name <> QL.Name Then
Sheets(i).Range("B3").Value = "=Max(B5:B1000)"
QL.Range("A" & i + 3) = Sheets(i).Name
QL.Range("B" & i + 3) = Sheets(i).Range("B3").Value
QL.Range("C" & i + 3) = "=IF(RC[-2]="""","""",RANK(RC[-1],R4C[-1]:R1000C[-1]))"
With QL.Range("A4").CurrentRegion
.Sort .Cells(1, 3), 1
End With
End If
Next
End Sub