新足迹

 找回密码
 注册

精华好帖回顾

· 西洋菜的后院盆栽种植 (2009-9-5) aquaponics · 梦幻泡菜全攻略! (2005-7-14) 飞龙
· 关于基因,潜移默化教育和主动教育 (2011-10-21) susan · 旅途人生 人生旅途 (2023-4-19) 士多可
Advertisement
Advertisement
查看: 3967|回复: 13

[IT] 坛子里有没有excel VBA的大神请赐教! [复制链接]

发表于 2017-3-26 02:39 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 yi2005 于 2017-3-26 12:54 编辑

入门级的菜鸟遇到根据cell变量在folder里找PDF文件然后attach to变量对应email adress的问题。听上去很简单,自己写加google一天了,还是无法实现我要的结果。已经黔驴技穷。如果有强人,只能厚着脸皮问问能不能指导下。跪求!有偿!

我把task说的详细点吧,求路过的大神赐教!

我有一个excel spreadsheet,暂名Dr's Distribution List
Column A: "Doctor's ID" 变量为ID
Column B: "Do Email?" 变量为yes/no
Column C: ID相对应的email address
Column D: "CC" 变量为email address
Column E: "Income & Expense Statement", 变量为Y 或 blank
Column F: "Detailed Invoices",变量为Y 或 blank
Column G: " Detailed Payment", 变量为Y 或 blank

另有一个folder,假设路径为C:\TEMP\。路径下有很多pdf文件。文件名的格式均为
文件一:“ID**Income & Expense Statement” 或者
文件二:“ID**Detailed Invoices” 或者
文件三:“ID**Detailed Payment”

Task:
查找第一条记录,若Column B 为YES,则查找Column C对应的email address建立email,并继续查找Column D,若不为空则将email address加入CC。
继续查找Column E、F、G,若变量为Y,则attach该条记录ID所对应的文件一、或二、或三、或全部。视变量Y或blank来attach或不attach相应的pdf文件。

不晓得我解释清楚没有。以下是文件部分截图。感谢!






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
Life is a reality to be experienced.
Advertisement
Advertisement

发表于 2017-3-26 08:49 来自手机 |显示全部楼层
此文章由 xhpuam 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xhpuam 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 xhpuam 于 2017-3-26 08:54 编辑

你都到这份上了还不写exe?
常用的话要做系统,因为PDF都应该是自动生成的。你可以Gmail我,我的ID加Gmail地址
o

发表于 2017-3-26 09:14 来自手机 |显示全部楼层
此文章由 gwjtorock 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gwjtorock 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这种程序要C++或者Java会比较容易实现吧

发表于 2017-3-26 09:37 |显示全部楼层
此文章由 wujjanet 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wujjanet 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有偿是指加分吧。 哈哈。本坛里确实大神多。我这里有请Google大神。

Google这样说:

在folder里找file-如下:
Sub TestSub(ByVal s As String)

    Dim FSO As New FileSystemObject
    Dim myFolder As Folder
    Dim myFile As File

    Set myFolder = FSO.GetFolder(s)
    For Each myFile In myFolder.Files
        If myFile.Name = Range("E1").Value Then  '此处可以添加myfile.name=function(cell.value)
            Debug.Print myFile.Name '此处可以直接 exit sub,这时你已经找到file name了
        End If
    Next

End Sub

email加attachment-如下
Sub Mail_workbook_Outlook_1()
     'Working in 2000-2010
     'This example send the last saved version of the Activeworkbook
    Dim OutApp As Object
    Dim OutMail As Object

    EmailTo = Worksheets("Selections").Range("D36")

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = EmailTo
        .CC = "person1@email.com;person2@email.com"
        .BCC = ""
        .Subject = "RMA #" & Worksheets("RMA").Range("E1")
        .Body = "Attached to this email is RMA #" & Worksheets("RMA").Range("E1") & ". Please follow the instructions for your department included in this form."
        .Attachments.Add ActiveWorkbook.FullName
         'You can add other files also like this
         '.Attachments.Add ("C:\test.txt") '此处直接改成file name即可

        .Display
    End With
    On Error Goto 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

评分

参与人数 1积分 +2 收起 理由
yi2005 + 2 感谢分享

查看全部评分

发表于 2017-3-26 12:12 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xhpuam 发表于 2017-3-26 08:49
你都到这份上了还不写exe?
常用的话要做系统,因为PDF都应该是自动生成的。你可以Gmail我,我的ID加Gmail ...

谢谢!我现在就gmail你。不会写exe。我不是程序猿。。。
搞成addin已经是我最大脑容量了。太谢谢了!
Life is a reality to be experienced.

发表于 2017-3-26 12:47 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xhpuam 发表于 2017-3-26 08:49
你都到这份上了还不写exe?
常用的话要做系统,因为PDF都应该是自动生成的。你可以Gmail我,我的ID加Gmail ...

已发。谢谢!
Life is a reality to be experienced.
Advertisement
Advertisement

发表于 2017-3-26 12:56 |显示全部楼层
此文章由 xyliu925 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xyliu925 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xhpuam 发表于 2017-3-26 08:49
你都到这份上了还不写exe?
常用的话要做系统,因为PDF都应该是自动生成的。你可以Gmail我,我的ID加Gmail ...

看着很高深啊。能不能公布一下,让我们学习exe怎么写?

谢谢

发表于 2017-3-27 10:12 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
等一天了,好像没有大神路过给我点hint

发表于 2017-3-27 14:58 |显示全部楼层
此文章由 baiii 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 baiii 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你有vba基础么?4L已经给了你个hint了啊,你自己也可以google啊,我刚随便搜了一个,和你的比较接近了,但是还需要你自己完善。
如果你想直接完整code就不是hint了,当然你也可以直接上stack overflow问,那里更多
https://www.mrexcel.com/forum/ex ... df-attachments.html

退役斑竹

发表于 2017-3-27 15:10 |显示全部楼层
此文章由 大饼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大饼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
4楼已经给了思路了。 用vba恐怕是最简易的实现方法了。

发表于 2017-3-27 15:19 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
baiii 发表于 2017-3-27 14:58
你有vba基础么?4L已经给了你个hint了啊,你自己也可以google啊,我刚随便搜了一个,和你的比较接近了,但 ...

vba基础我懂啊。边做边学。
我google了。4楼并没有get到我觉得比较没想通的地方。他给我的我自己也能google的。
我已经在stackoverflow发贴了,然而没有消息。

好了。谢谢大家,我自己想出来了。正在test。作为一个没有编程background的人,都是这么问+google过来的。打扰大家了。多谢帮忙!
Life is a reality to be experienced.
Advertisement
Advertisement

发表于 2017-3-27 20:43 |显示全部楼层
此文章由 晴天宝宝 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 晴天宝宝 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我好像写过类似的,最近10年都是一直跟VBA在打交道,但是我不是程序猿,跟“大神”更是毛关系都没有

楼主自己写出来了就是最好的学习经验,支持!如果需要人帮忙test,可以留言给我,哈哈

发表于 2017-3-27 22:22 |显示全部楼层
此文章由 luoshifen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 luoshifen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我一般喜欢去mrexcel 问,感觉人更热情一些。 通常问题都能得到回复


你所说的这个流程里的主要问题(VBA和 outlook , 以及attachment 的互动)以下都能得到解答

我会的VBA outlook两种方法都是这个网站学的:

https://www.rondebruin.nl/win/s1/outlook/mail.htm


你其他的就是简单的loop了



你起码把差不多的code发出来吧,凭空写晚上脑仁疼。。

发表于 2017-3-28 00:54 |显示全部楼层
此文章由 yi2005 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yi2005 所有!转贴必须注明作者、出处和本声明,并保持内容完整
luoshifen 发表于 2017-3-27 22:22
我一般喜欢去mrexcel 问,感觉人更热情一些。 通常问题都能得到回复

今天下午被告知要求又改了。我也脑仁疼,不能想了现在。明天白天想想。脑仁生生地疼
Life is a reality to be experienced.

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部