Phan Thanh Tam
Thành viên mới
- Tham gia
- 19/4/21
- Bài viết
- 9
- Được thích
- 2
Xin chào mọi người,
mình tên Tâm.
Mình có một đoạn code VBA dùng để chèn hình ảnh vào báo cáo.
Mình muốn đoạn code bắt đầu chạy khi nhấn nút bắt đầu, và kết thúc khi nhấn nút kết thúc thì phải làm thế nào vậy ạ?
Mong mọi người, ai biết hướng dẫn giúp dùm mình.
mình có gửi file đính kèm, mọi người xem hộ mình với.
Xin cảm ơn.
CODE của mình như sau:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim myF As Variant
Dim mySp As Object
Dim myAD1 As String
Dim myAD2 As String
Dim myHH As Double
Dim myWW As Double
Dim myHH2 As Double
Dim myWW2 As Double
Cancel = True
'===============chon lua hinh anh
myF = Application.GetOpenFilename _
("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "chon hinh anh", , False)
If myF = False Then
MsgBox "vui long chon hinh anh"
Exit Sub
End If
'===============xoa hinh anh
For Each mySp In ActiveSheet.Shapes
myAD1 = mySp.TopLeftCell.MergeArea.Address
myAD2 = Target.Address
If myAD1 = myAD2 Then mySp.Delete
Next
'===============dan hinh anh
Set mySp = ActiveSheet.Shapes.AddPicture(Filename:=myF, LinkToFile:=False, _
SaveWithDocument:=True, Left:=Target.Left, Top:=Target.Top, _
Width:=0, Height:=0) '★tam dat bang 0
mySp.ScaleHeight 1, msoTrue '★quay ve kich co truoc
mySp.ScaleWidth 1, msoTrue '★quay ve kich co truoc
'===============duy tri ti le ngang doc
If mySp.Width > Target.Width Then mySp.Width = Target.Width
If mySp.Height > Target.Height Then mySp.Height = Target.Height
'===============can chinh giua
myHH2 = (Target.Height / 2) - (mySp.Height / 2)
myWW2 = (Target.Width / 2) - (mySp.Width / 2)
mySp.Top = Target.Top + myHH2
mySp.Left = Target.Left + myWW2
Set mySp = Nothing
End Sub
mình tên Tâm.
Mình có một đoạn code VBA dùng để chèn hình ảnh vào báo cáo.
Mình muốn đoạn code bắt đầu chạy khi nhấn nút bắt đầu, và kết thúc khi nhấn nút kết thúc thì phải làm thế nào vậy ạ?
Mong mọi người, ai biết hướng dẫn giúp dùm mình.
mình có gửi file đính kèm, mọi người xem hộ mình với.
Xin cảm ơn.
CODE của mình như sau:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim myF As Variant
Dim mySp As Object
Dim myAD1 As String
Dim myAD2 As String
Dim myHH As Double
Dim myWW As Double
Dim myHH2 As Double
Dim myWW2 As Double
Cancel = True
'===============chon lua hinh anh
myF = Application.GetOpenFilename _
("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "chon hinh anh", , False)
If myF = False Then
MsgBox "vui long chon hinh anh"
Exit Sub
End If
'===============xoa hinh anh
For Each mySp In ActiveSheet.Shapes
myAD1 = mySp.TopLeftCell.MergeArea.Address
myAD2 = Target.Address
If myAD1 = myAD2 Then mySp.Delete
Next
'===============dan hinh anh
Set mySp = ActiveSheet.Shapes.AddPicture(Filename:=myF, LinkToFile:=False, _
SaveWithDocument:=True, Left:=Target.Left, Top:=Target.Top, _
Width:=0, Height:=0) '★tam dat bang 0
mySp.ScaleHeight 1, msoTrue '★quay ve kich co truoc
mySp.ScaleWidth 1, msoTrue '★quay ve kich co truoc
'===============duy tri ti le ngang doc
If mySp.Width > Target.Width Then mySp.Width = Target.Width
If mySp.Height > Target.Height Then mySp.Height = Target.Height
'===============can chinh giua
myHH2 = (Target.Height / 2) - (mySp.Height / 2)
myWW2 = (Target.Width / 2) - (mySp.Width / 2)
mySp.Top = Target.Top + myHH2
mySp.Left = Target.Left + myWW2
Set mySp = Nothing
End Sub