Gửi email tự động trong excel

Liên hệ QC

NguyenVietThinh08

Thành viên chính thức
Tham gia
12/5/20
Bài viết
86
Được thích
4
Xin chào cả nhà, mình lên mạng và có hướng dẫn gửi mail tự động bằng excel thông qua outlook.
Phương pháp rất hay nhưng mình muốn mở rộng tính năng 1 chút nhưng chưa biết cách làm mong các anh em bớt chút thời gian chỉ giáo
Mình muốn nhấn vào nút gửi email thì trong emal gửi đi đính kèm 1 ảnh là phần mình đã tô vuông đó hoặc 1 sheet mới chỉ có dữ liệu phần mình đã đóng khung
Không biết có cao nhân nào làm được không ạ, giúp mình với
 

File đính kèm

  • ảnh.PNG
    ảnh.PNG
    228.1 KB · Đọc: 60
Dán cái hộp thoại References lên xem thử bạn
Đây ạ, Những dòng khác chưa được tick ạ
Bài đã được tự động gộp:

Dán cái hộp thoại References lên xem thử bạn
Đây ạ,, những ô khác chưa được tick ạ
Bài đã được tự động gộp:

Dán cái hộp thoại References lên xem thử bạn
Đay ạ
 

File đính kèm

  • Capture4.JPG
    Capture4.JPG
    91.4 KB · Đọc: 15
  • Capture4.JPG
    Capture4.JPG
    91.4 KB · Đọc: 15
  • Capture4.JPG
    Capture4.JPG
    91.4 KB · Đọc: 13
Upvote 0
Đây ạ, Những dòng khác chưa được tick ạ
Vậy bạn thử debug dòng .Chart.Paste trong sub này thử, xem nó có dán được vùng kết quả vào không?
Sub ExportRange(rng As Range, sPath As String)

Dim cob, sc

rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Set cob = rng.Parent.ChartObjects.Add(10, 10, 200, 200)
'remove any series which may have been auto-added...
Set sc = cob.Chart.SeriesCollection
Do While sc.Count > 0
sc(1).Delete
Loop

With cob
.Height = rng.Height
.Width = rng.Width
.Chart.Paste
.Chart.Export Filename:=sPath, Filtername:="JPG"
.Delete
End With

End Sub
 
Upvote 0
Vậy bạn thử debug dòng .Chart.Paste trong sub này thử, xem nó có dán được vùng kết quả vào không?
Sub ExportRange(rng As Range, sPath As String)

Dim cob, sc

rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Set cob = rng.Parent.ChartObjects.Add(10, 10, 200, 200)
'remove any series which may have been auto-added...
Set sc = cob.Chart.SeriesCollection
Do While sc.Count > 0
sc(1).Delete
Loop

With cob
.Height = rng.Height
.Width = rng.Width
.Chart.Paste
.Chart.Export Filename:=sPath, Filtername:="JPG"
.Delete
End With

End Sub
:((( vẫn ko được ạ
Bài đã được tự động gộp:

Mình cũng mới tập tành VBA nên nhìn vào dòng lệnh này vẫn quá sức với mình ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Bấm F9 để dừng code ở 1 dòng nào đó rồi sau đó cứ bấm F8 để xem kết quả từng dòng lệnh (lật qua lật lại giữa bảng tính và cửa sổ lệnh để xem). Có gì khó mấy đâu, chỉ là bạn không chịu khó.
 
Upvote 0
Bấm F9 để dừng code ở 1 dòng nào đó rồi sau đó cứ bấm F8 để xem kết quả từng dòng lệnh (lật qua lật lại giữa bảng tính và cửa sổ lệnh để xem). Có gì khó mấy đâu, chỉ là bạn không chịu khó.
Mình mới học VBA được 1 tháng thôi, chủ yếu là đi cóp nhặt ở mấy diễn đàn và video nên mình không biết thật,
 
Upvote 0
Mình mới học VBA được 1 tháng thôi, chủ yếu là đi cóp nhặt ở mấy diễn đàn và video nên mình không biết thật,
Nếu bạn không biết debug là gì thì bạn tìm trên GPE hoặc google ra để học cách debug. Còn nếu đã biết debug thì ở trên bạn hẳn phải trả lời rõ cho tôi biết câu lệnh .Chart.Paste đó nó tác dụng ra sao chứ không thể nói chung chung "vẫn không được ạ" như thế. Đồng thời, nếu Sub trong file không được thì bạn cũng nên dùng cái Sub đầu tiên tôi gửi để thử chứ (thử riêng để biết có tạo được ảnh kết quả không). Tôi nói không chịu khó là như vậy đó.
 
Upvote 0
Bấm F9 để dừng code ở 1 dòng nào đó rồi sau đó cứ bấm F8 để xem kết quả từng dòng lệnh (lật qua lật lại giữa bảng tính và cửa sổ lệnh để xem). Có gì khó mấy đâu, chỉ là bạn không chịu khó.
Bằng 1 cách nào đó mình đã đính kèm được, sau đó mình chỉnh sửa hay sao ấy mình là không làm được như thế nữa
1594012664852.png
 
Upvote 0
Vậy bạn thử debug dòng .Chart.Paste trong sub này thử, xem nó có dán được vùng kết quả vào không?
Sub ExportRange(rng As Range, sPath As String)

Dim cob, sc

rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Set cob = rng.Parent.ChartObjects.Add(10, 10, 200, 200)
'remove any series which may have been auto-added...
Set sc = cob.Chart.SeriesCollection
Do While sc.Count > 0
sc(1).Delete
Loop

With cob
.Height = rng.Height
.Width = rng.Width
.Chart.Paste
.Chart.Export Filename:=sPath, Filtername:="JPG"
.Delete
End With

End Sub
Mình cũng từng bị như thế! có nghĩa là hình paste vào trống trơn hổng có gì, và mình thêm cái lệnh active chart trước lệnh .Chart.Paste thì OK
 
Upvote 0
đây ạ, mình không biết mình đã sửa lệnh gì mà nó đã gửi có đính kèm ảnh có nội dung, giờ thì không biết các nào sữa nữa
View attachment 240610
trên dòng With cob thêm thử "cob.Active"
nếu vẫn bị thì thử " cob.Parent.Active "
hoặc " cob.Chart.Parent.Active "
vì mình không biết rõ lắm cái cob của bạn như thế nào.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào cả nhà, mình lên mạng và có hướng dẫn gửi mail tự động bằng excel thông qua outlook.
Phương pháp rất hay nhưng mình muốn mở rộng tính năng 1 chút nhưng chưa biết cách làm mong các anh em bớt chút thời gian chỉ giáo
Mình muốn nhấn vào nút gửi email thì trong emal gửi đi đính kèm 1 ảnh là phần mình đã tô vuông đó hoặc 1 sheet mới chỉ có dữ liệu phần mình đã đóng khung
Không biết có cao nhân nào làm được không ạ, giúp mình với
Gửi email của bạn sao không phải gửi nội dung + format như hình được à mà phải gửi kiểu dạng ảnh để làm gì nhỉ?
 
Upvote 0
Tạm ngưng bàn luận cho tới khi có file nhá
 
Upvote 0
Web KT
Back
Top Bottom