Note: The other languages of the website are Google-translated. Back to English

Excel'den görünüm aracılığıyla hücre aralığı nasıl gönderilir / e-posta ile gönderilir?

Bir çalışma sayfasındaki bir raporu bitirdikten sonra, bu çalışma sayfasındaki belirli alıcınıza bazı önemli verileri içeren bir dizi hücreye göndermeniz gereken bir sorunla hiç karşılaştınız mı? Outlook'u açmadan bu aralığı Excel'den e-postayla göndermenin hızlı bir yolu var mı?

VBA kodu ile Excel'den ek olarak hücre aralığı gönder

VBA kodu ile Excel'den gövde olarak hücre aralığı gönderin


ok mavi sağ balonVBA kodu ile Excel'den ek olarak hücre aralığı gönder

Aşağıdaki VBA kodu, seçtiğiniz aralığı Excel'de ek olarak göndermenize yardımcı olabilir. Lütfen şunu yapın:

1. Çalışma kitabınızı açın ve ardından ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Excel'den ek olarak hücre aralığı gönder

Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

not: Yukarıdaki kodda, aşağıdaki bilgileri kendi ihtiyacınıza göre değiştirebilirsiniz.

  • .To = "skyyang @extendoffice.com "
  • .CC = ""
  • .BCC = ""
  • .Subject = "kte bilgisi"
  • .Body = "merhaba, lütfen bu belgeyi kontrol edin ve okuyun."

3. Sonra tıklayın F5 Bu kodu çalıştırmak için bir tuşa basın ve göndermek istediğiniz aralığı seçmenizi hatırlatan bir komut kutusu açılır. Ekran görüntüsüne bakın:

doc-gönderme aralığı1

4. Sonra tıklayın OKve bir komut kutusu görünecektir, ilerleme çubuğu tamamlandıktan sonra izin vermekve sonra belirli hücre aralığı ek olarak alıcınıza gönderilmiştir.

doc-gönderme aralığı2


ok mavi sağ balonVBA kodu ile Excel'den gövde olarak hücre aralığı gönderin

Excel'den mesaj gövdesinin bir parçası olarak belirli bir aralık göndermek istiyorsanız, çözmek için aşağıdaki VBA kodunu da uygulayabilirsiniz.

Kutools for Excel, ile daha fazla 120 kullanışlı fonksiyonlar, işlerinizi kolaylaştırır. 

1. Çalışma sayfanızı etkinleştirin ve ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Excel'den gövde olarak hücre aralığı gönder

Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Not: Yukarıdaki kodda aşağıdaki bilgileri ihtiyacınıza göre değiştirebilirsiniz.

  • .Introduction = "Lütfen bu e-postayı okuyun."
  • .Item.To = "skyyang @extendoffice.com "
  • .Item.Subject = "kte bilgisi"

3. Sonra tıklayın F5 Bu kodu çalıştırmak için tuşuna basın ve göndermek istediğiniz bir aralığı seçmenizi hatırlatan bir komut kutusu açılır.

doc-gönderme aralığı1

4. Sonra tıklayın OKve bir komut kutusu görünecektir, ilerleme çubuğu tamamlandıktan sonra izin vermekve ardından belirli hücre aralığı, alıcınıza ileti gövdesi olarak gönderilir.

doc-gönderme aralığı2

Notlar:

1. Bu kodlar yalnızca posta programınız olarak Outlook'ta kullanılabilir.

2. Mevcut çalışma sayfasını gönderdikten sonra, e-postanın başarıyla gönderilip gönderilmediğinden emin olmak için Outlook'unuza gidebilirsiniz.


İlgili yazılar:

Çalışma sayfasını yalnızca Outlook üzerinden Excel'den nasıl gönderirim?

Geçerli çalışma kitabını Outlook'tan Excel'den nasıl gönderirim?


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (26)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, e-posta göndermek için gerekli hücreleri seçen marco'yu kullanıyorum. "yeni bir e-posta" açmasını sağlamak için bunu başka bir makroyla birleştirdim, şimdi sorunum şu ki, bir hücreye çok fazla bilgi koyarsanız, o zaman yalnızca formaiton alır, o hücredeki tüm bilgileri herhangi bir fikri görmezsiniz ?? bu tezahüratla ilgili yardımlarınız için çooooook teşekkür ederim
Bu yorum sitedeki moderatör tarafından en aza indirildi
herkese merhaba
Sayfa 1'deki aralığı seçmek için bir projem var, A sütununda 2. sayfada yazılan birçok e-posta adresine tek tek e-posta ile gönderilmek üzere ve B sütunu belirli bir konu ile boşsa ve gönderdikten sonra sayfa 2'ye yaz sütun b gönderildi
Ve sunucu koşulu olarak bir sonraki e-postayı göndermek için 10 saniye beklemek
Biri bana yardım etsin lütfen?   
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, ikinci program için bu maile nasıl imza ve ikinci tanıtım satırı ekleyeceğimi söyler misiniz? Şimdiden teşekkürler.
Bu yorum sitedeki moderatör tarafından en aza indirildi
güzel ve faydalı, iyi iş!!!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çok kullanışlı. Teşekkür ederim . Aynı sayfada e-posta adresi listesi var. Bir e-posta adresine tıkladığımda, seçilen hücre aralığı bu e-postanın eki olarak gönderilecek. Lütfen bana bu konuda yardımcı olabilir misiniz? Çok teşekkürler.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Çok Güzel Anlatılmış. Yeni bir çalışma kitabı göndermek yerine yalnızca seçili aralığı kopyalayıp e-posta gövdesine yapıştırıp gönderebiliriz. Seçilen Aralığı Resim olarak göndermek istemiyorum. E-postanın gövdesinde bir tablo görünümü gibi göndermek istiyorum. Bunu yapabilir miyiz??
Bu yorum sitedeki moderatör tarafından en aza indirildi
Teşekkürler, Bu çok faydalı ama göndermeden önce posta gövdesine bir açıklama eklemem gerekirse. Lütfen kodu önerin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Her şey iyi görünüyor, ancak seçilen sınır aralığını vermiyor, lütfen önerebilir misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çok teşekkür ederim bu çözümü çok uzun zamandır buluyorum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Mükemmel iş. Bunun otomatik olarak gönderildiğini görmek daha iyi olurdu. Göndermeye devam etmeden önce bir hata istememesi için ne yapmalıyım?
Bu yorum sitedeki moderatör tarafından en aza indirildi
gönderilecek kadar çok e-posta adresi koyabilir miyiz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Carey, tüm VBA'lar kullanarak göndermek için birçok e-posta adresi (Kime, BCC, CC) ekleyebilir; ayırıcı olarak. Örneğin, .To = "skyyang@extendoffice.com; test1@extendoffice.com; test2@extendoffice.com "
Bu yorum sitedeki moderatör tarafından en aza indirildi
ich möchte das koppierte nicht als Datei in eine E-Mail einfügen, sondern başına kopyala ve die E-Mail einfügen'de yapıştır. Dem VBA Kodunda Wie geht das?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, personelin doldurmasını istediğim bir tablom var ve ardından otomatik olarak bir e-posta oluşturacak bir komut düğmesi var, ancak tablodaki verilerin e-posta gövdesinde olmasını istiyorum. Bunun için bir kod var mı? 
teşekkür ederim 
Bu yorum sitedeki moderatör tarafından en aza indirildi
herkese merhaba
Sayfa 1'deki aralığı seçmek için bir projem var, A sütununda 2. sayfada yazılan birçok e-posta adresine tek tek e-posta ile gönderilmek üzere ve B sütunu belirli bir konu ile boşsa ve gönderdikten sonra sayfa 2'ye yaz sütun b gönderildi
Ve sunucu koşulu olarak bir sonraki e-postayı göndermek için 10 saniye beklemek
Biri bana yardım etsin lütfen?   
Bu yorum sitedeki moderatör tarafından en aza indirildi
herkese merhaba
Sayfa 1'deki aralığı seçmek için bir projem var, A sütununda 2. sayfada yazılan birçok e-posta adresine tek tek e-posta ile gönderilmek üzere ve B sütunu belirli bir konu ile boşsa ve gönderdikten sonra sayfa 2'ye yaz sütun b gönderildi
Ve sunucu koşulu olarak bir sonraki e-postayı göndermek için 10 saniye beklemek
Biri bana yardım etsin lütfen?   
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba hriad, "B sütunu belirli bir konu ile boşsa ve gönderdikten sonra 2. sayfaya yazarsa b sütunu gönderilir
Ve bir sonraki e-postayı göndermek için 10 saniye beklemek sunucunun koşulu olarak "Bunu anlamıyorum. Lütfen bana gereksiniminizi tekrar anlatın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Sunny
öncelikle yardımınız için teşekkürler sunucu aynı saniyede çok fazla e-posta göndermemeyi şart koştuğu için ilk e-postayı ve sonraki e-postayı gönderdikten sonra 10 saniye beklemek istiyorum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, hriad, lütfen aşağıdaki kodu deneyin, çalıştırdıktan sonra, göndermek istediğiniz aralığı seçmek için bir iletişim kutusu açılacak, ardından 2. sayfanın A sütunundaki adreslere ve B sütunundaki konularla birlikte gönderilecektir. Her 10 saniyede bir , bir adrese gönderin. "Lütfen bu e-postayı okuyun" kodunu istediğiniz gibi değiştirebilirsiniz.
Alt SendEmailRange()

'GüncellemeTarafındanExtendoffice20220414

Aralık Olarak Dim WorkRng

Dim xSU, EV Olarak Boole

Çalışma Sayfası Olarak Dim xWSh

Tamsayı olarak xCount Dim

Tamsayı Olarak Dim xI

On Error Resume Next

xTitleId = "KutoolsforExcel"

'gövde olarak göndermek için kullanılan bir aralık seçin

Set WorkRng = Application.InputBox("Range", xTitleId, Application.Selection.Address, , , , , 8)

WorkRng Hiçbir Şey Değilse Sub'dan Çıkın
WorkRng.Activate
WorkRng.Seç

xWSh = ActiveWorkbook.Worksheets("Sheet2") 'adresleri ve konuları içeren sayfa olarak ayarlayın

xCount = xWSh.UsedRange.Rows.Count

xSU = Uygulama. Ekran Güncelleme

EV = ActiveWorkbook.ZarfGörünür

Application.ScreenUpdating = Yanlış


xI = 1 ila xCount için

Eğer (xWSh.Range("A" & xI) = "") O zaman
Çıkış
Eğer son
ActiveWorkbook.EnvelopeVisible = Doğru
ActiveSheet.MailEnvelope ile
.Introduction = "Lütfen bu e-postayı okuyun."

.Item.To = xWSh.Range("A" & xI)

.Item.Subject = xWSh.Range("B" & xI)

.Öğe.Gönder
İle bitmek
Eğer (xI = xCount) ise

Çıkış

Eğer son

Application.Wait Now + TimeValue("0:00:10")

Sonraki


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Sub

Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Sunny
Emekleriniz için çok çok teşekkürler.... Çok teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aralıkları sabitleyebilir miyiz? makroda kendi kendine
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Mam plik z 6 arkuszami. Każdy z arkuszy 2-6 musi zostać wysłany yapmak innej grupy odbiorców jako załącznik excela. Czy da się - podpiąć pod 5 przycisków?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, pawerl
Sorununuzu çözmek için aşağıdaki makale size yardımcı olabilir, lütfen kontrol edin:

https://www.extendoffice.com/documents/excel/7178-send-each-sheet-to-different-email.html

Teşekkür ederim!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun için teşekkür ederim! Tatilden döner dönmez test edeceğim. Bir soru daha var. Kod düzenleme modunda veya klavyeden ctrl+seçili düğme ile çalıştırıldığında bile, Activex düğmesini kullanarak (hiç işlem yok) vba kodlarını çalıştırmada sorun yaşıyorsanız. vba yolculuğuna yeni başlıyorum ve yok
neyi yanlış yaptığım konusunda fikir :/
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, pawerl
Kodu kopyalayıp içine yapıştırmanız yeterlidir. Uygulamalar için Microsoft Visual Basic penceresini seçin ve ardından koşmak aşağıda gösterilen ekran görüntüsü gibi araç çubuğundan düğmesine basın: (not: kodda, S1 hücre, e-postayı göndermek istediğiniz e-posta adresini içerir. Lütfen bunları ihtiyacınıza göre değiştirin.)

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-emails.png

Lütfen tekrar deneyin!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Her şeyi yukarıdaki gibi yaptım ve sonuç: düğme dışında hepsi mükemmel çalışıyor :) Şu anda bunu gerçekten umursamıyorum :)

Çok teşekkür ederim!!! konu kapandı :)
Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır