
Lesley Fowler
0
3526
474
En son VBA ipuçlarım ve püf noktaları ile bittiğimi düşündüğümde VBA Komutlarını Kullanarak Bir Excel Elektronik Tablodan E-posta Gönderme VBA Komutlarını Kullanarak Bir Excel Elektronik Tablosundan E-posta Gönderme VBA Komutlarını Kullanarak E-posta Gönderme Birlikte Çalışma Veri Nesneleri (CDO) ve VBA komut dosyaları kullanarak Excel içerisinde. , VBA'yı arka uç bir komut dosyası dili olarak kullanan iki uygulama arasında kolayca bilgi iletmek için herkesin kullanabileceği gerçekten harika bir teknik daha keşfettim..
VBA ile ilgili harika olan şey, size pek çok özellik ve araç kazandırmasıdır. 3 Uygulamaları ve Pencereleri VB Komut Dosyasıyla Maksimize Edilmenin Yolları [Windows] 3 Uygulamaları ve Windows'u VB Komut Dosyasıyla En İyi Hale Getirmenin Yolları [Windows] Yapmayı sevdiğim şey VB senaryoları yazmak. Bir uygulamada bir Windows Komut Dosyası dosyası veya VBA komut dosyası olsun, komut dosyası oluşturma, biraz sulandırılmış bir sürümde de olsa, normalde VB uygulamalarının bir parçası olan uygulamalara işlevsellik ekleme olanağı sağlar.
Belirli uygulamalarda VBA ile çalışmanın en sinir bozucu parçalarından biri, iki uygulamaya ulaşmak için her zaman kolay olmamaktır. “konuşma” birbirlerine. Bunun nedeni, kullandığınız değişkenlerin tümüne, bilgisayardaki herhangi bir yerden değil, yalnızca uygulamanın kapsamında erişilebilmesidir..
Bununla, orada dedi Hangi bilgi aktarma yolları Excel Verilerini bir Word Belgesine Entegre Etme Excel Verilerini bir Word Belgesine Entegre Etme Çalışma haftanızda, muhtemelen kendinizi Excel'den Word'e veya başka bir şekilde bilgileri kopyalayıp yapıştırırken bulduğunuz birçok zaman olabilir. etrafında. Bu, insanların Word veya Excel gibi VBA tabanlı uygulamalar arasında sık sık yazılı raporlar oluşturmasıdır. Çoğu durumda, profesyonel bir ortamda bile, programcılar veri dosyalarıyla uygulamalar arasında iletişim kurmaya başvururlar. Bu işe yarayabilir, ancak işleri bozmaya yarayan olası bir kurcalama ya da hata unsuru ortaya çıkardı - bu dosyaların silinmesi ya da değiştirilmesi gibi -.
Uygulamalar arasında çok hızlı bilgi işlemlerini deneyebileceğiniz başka bir yaklaşım da verileri panoya aktarmak ve bu bilgiyi diğer uygulamadan okumaktır..
Panoyu Kullanarak Bilgi Aktarma
Bu örnekte, size, üç metin bilgisini - 3 metin alanı içindeki değerler - doğrudan Word makrosunun başlattığı bir Excel elektronik tablosuna nasıl geçireceğinizi göstereceğim..
Başlangıç ayarları aşağıda gösterilmiştir. Tasarım Moduna geçtiğim ve kullanıcının bilgi girmesi için 3 etiket ve 3 metin alanı oluşturduğum bir Word belgesi. Tıklayarak “Gönder” düğmesi veri aktarım kodunu başlatacak.
VB Editor ekranına girmek için Tasarım Modunda oluşturduğunuz yeni düğmeyi çift tıklayın. Yapmak istediğiniz ilk şey, sistem panosuna erişmenizi sağlayan referansı eklemektir. Araçlar - Referanslar üzerine tıklayın.
Referans listesini aşağı doğru kaydırın ve “Microsoft Forms 2.0 Nesne Kitaplığı”. Tamam'ı tıkladığınızda, VB düzenleme oturumunuz artık panodan okumanıza veya yazmanıza izin veren yöntemlere erişebilir.
Şimdi tam olarak yapacağımız şey bu. İşlevinde “Gönder” düğmesine aşağıdaki kodu girdim.
Dim strClipText DataObject Olarak Dim strInputText Dize Olarak Dim errCode Tamsayı Olarak Ayarla strClipText = Yeni DataObject strInputText = ThisDocument.txtBox1.Value & "," & ThisDocument.txtBox2.Value & "," PutInClipboard 'Set objWB = objExcel.Workbooks.Open ("c: /temp/MyExcelFile.xlsm") errCode = Kabuk ("C: \ Program Dosyaları (x86) \ Microsoft Office \ Office12 \ excel.exe c: / temp / MyExcelFile .xlsm ")
Bakalım ne kadar basit? StrClipText veri nesnesi, işleyebileceğiniz pano nesnesidir. Öncelikle, tüm alan değerlerini tek bir dize değişkeni olarak okuyun; her veri alanı virgülle ayrılmış olarak veya sizin için ne işe yararsa.
Ardından, yukarıdaki Shell komutunda açmakta olduğunuz Excel dosyasını oluşturmanız gerekecektir. Excel'de, aynı referansı eklemek isteyeceksiniz “Microsoft Forms 2.0 Nesne Kitaplığı”, ve sonra Workbook.Open () işlevinde, aşağıdaki betiği çalıştırabilirsiniz..
Dim msObj MSForms.DataObject Olarak Dim strText Dize Olarak Dim strResult () Dize Olarak Dim intArrayCount Tamsayı Olarak Dim x Tamsayı Olarak Ayarla msObj = Yeni MSForms.DataObject msObj.GetFromClipboard strText = msObj.GetText "str" (str) "str" ) intArrayCount = Application.CountA (strResult) x = 0 için intArrayCount - 1 ThisWorkbook.Sheets ("Sayfa1") Hücreler (x + 1, 2) .Value = strResult (x) Sonraki
Yine, adım attığınızda, bu basit ve çok hızlı bir senaryo. MSForms nesnesini oluşturur ve en güncel verileri panodan alır ve dizge değişkenine yerleştirir. Daha sonra, bu tek, uzun dize değişkenini, ayrı ayrı dizelerin dizilişine kullandığınız sınırlayıcıya göre böler ve son olarak diziden geçer (CountA dizinin uzunluğunu verir) ve her değeri sütun 2'deki sayfaya verir..
İşte son sonuçlar.
Şimdi, biraz yaratıcılıkla, VBA tabanlı herhangi bir uygulamayı başlatmak için bu tekniği kullanabilirsiniz. “yapıştırmak” içine bilgi.
Excel referans kitaplığını kullanarak aynı şeyi her zaman yapabilirsiniz, ancak bu durumda sessizce Excel dosyasını açıp o dosyanın içindeki verileri işliyor olabilirsiniz. Yukarıdaki durumda, kelimenin tam anlamıyla Excel uygulamasını açıp dosyayı görüntülüyorsunuz ve Excel'deki başlangıç Makrosunun işin kalanını yapmasına izin veriyorsunuz.
Bu, çoğu üretim tesisindeki operatör arayüzü uygulamalarının birçoğu gibi, VBA'ya dayanan ancak iki uygulamayı sıkıca bağlamak için bu kitaplıklara sahip olmayabilir. Panoyu bu şekilde otomatik bir şekilde kullanmak hızlı, kolaydır ve işi halleder.
Yukarıdaki komutları deneyin ve sisteminizde nasıl çalıştığını bize bildirin. Çimdiklemek zorunda mıydın? Kodu daha iyi hale getirme konusunda herhangi bir öneriniz var mı? Aşağıdaki yorum bölümünde düşüncelerinizi paylaşın.
Resim Kredisi: Shutterstock Üzerinden Dosya Transferi Resmi