美文网首页SAS编程
157:SAS code在EXCEL文件里面创建超链接

157:SAS code在EXCEL文件里面创建超链接

作者: SASPRO的打工人生活 | 来源:发表于2022-10-26 22:10 被阅读0次

    今天有一个当妈妈的读者问我一个问题,我为什么加上“当妈妈”3个字呢?因为随着关注我的人越来越多,能遇上各色各样的人,有当妈妈的,有医药代表想转SAS的,有DM/CRA想转SAS的,还有好几个失业想转SAS的,对于想转SAS的,在这祝你们都能成功。

    这个读者问了一个问题:就是DM要求在EXCEL中用SAS代码加上超链接,当时我一听,直接用EXCEL创建超链接的功能不就可以了吗,但是他说可能有几十张表,我想好吧,确实用SAS代码可能更快一些。这一看就是写DVP或者SDV,我现在好久都没碰过了,所以说DM为什么建议找个SAS程序员对象,哈哈。

    我搜索了相关资料,如果导出的EXCEL文件表单名称不变的,要先知道要导出哪些表,我在这先创建了一个测试表。其中Alfred和Mary是有超链接的(我手动在EXCEL创建的,显示的路径是file:///D:\A_work\Practice\hyperlink.xlsx - Alfred!A1)

    我们就得利用这个路径在我们的SAS code创建超链接。

    不过需要注意的是,SAS 利用这个路径创建超链接,需要把 -变成 #,

    同时需要创建一个format,就像下面这样

    proc format;

    value $hyper

    'Alfred'="file:///D:\A_work\Practice\hyperlink2.xlsx#Alfred!A1";

    run;

    之后我们利用这个format在EXCEL里面创建超链接。现在我导出另一个EXCEL,

    可以看到是创建超链接的,但是因为我没有输出Alfred这张sheet,所以显示“引用无效”,但是她们到时候是会创建对应表的。

    同时这个超链接是没有颜色显示的,但我的想法是可以给这列在define的时候设置一些样式,应该就能有颜色显示,这里我就不举例了。

    上面是超链接跳到某个表单,如果是我想点击Alfred的时候就跳到某个表单里的某个单元格呢?

    这时候如果用上面那种方法就没用了,需要用到compute模块。假如我想实现点击"Mary"就跳到CARS这张sheet的B2单元格,可以这样

    compute name;

    if index(upcase(name),'MARY') > 0 then do;

    call define(_COL_,'URL',"file:///D:\A_work\Practice\hyperlink2.xlsx#cars!B2");

    call define(_COL_,"style","STYLE={color=#0000FF}");

    end;

    endcomp;

    run;

    导出的EXCEL如下

    确实能跳到指定单元格,但是我发现了一个问题,就是跳到sheet和跳到指定单元格不能同时实现???很奇怪,但是我想她们想实现的效果第一种方法就可以吧。

    就这样吧,这段代码就免费发给这个读者啦!

    相关文章

      网友评论

        本文标题:157:SAS code在EXCEL文件里面创建超链接

        本文链接:https://www.haomeiwen.com/subject/zalizrtx.html