首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA: 获取单元格内超链接文件的绝对路径

文章背景:在工作中,有时为了内容跳转的方便,会在单元格内设置超链接,通过Hyperlinks(1).Address,得到的是超链接文件的相对路径。...有时为了VBA代码的编写方便,需要使用的是链接文件的绝对路径。下面通过编写VBA函数,获取单元格内超链接文件的绝对路径。 1 绝对路径和相对路径 有两种方法指定一个文件路径。...2 函数编写 针对单元格内的超链接,本文暂不考虑共享文件夹的情况,链接的文件可以分为以下三种情况: 在同一工作目录内; 在同一个公共盘,不在同一工作目录内; 不在同一公共盘。...如果单元格链接的是本工作簿内的单元格,则Hyperlinks(1).Address得到的是空字符串。...相对路径转化为绝对路径的函数代码如下所示: Function getAbsolutePath(target As Range) As String Dim relativepath As String

3.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python批量爬虫下载文件——把Excel中的超链接快速变成网址

    我想起了之前的爬虫经验,给老师分析了一下可行性,就动手实践了。 没想到刚开始就遇到了困难,Excel中的超链接读到Python中直接显示成了中文。...下一篇文章分享批量爬虫下载pdf文件的代码。 一、想要得到的效果 首先来看下想要得到的效果,第一列是原始的超链接,第二列是我们想要得到的对应网址。...1 方法一:单个超链接鼠标点击转换 第一个方法是选中想要把超链接转换成对应网址的单元格,接着双击鼠标左键,然后回车,单元格内容就会自动转换成网址。...第二个方法我尝试下来还是失败了…… 3 方法三:自定义VBA函数转换 第三个方法是自定义VBA函数进行转换。...[2]自定义一个VBA函数GetAdrs。 首先左键单击【开发工具】选项,然后左键单击【代码】功能区中的【Visual Basic编辑器】。

    1.1K20

    告诉你什么是Excel VBA对象模型及如何引用对象

    Hyperlink,代表超链接。 Name,代表为特定单元格区域定义的名称。 PageSetup,用于存储打印信息。 PivotTables,包含PivotTable对象。...Range,代表单元格、行、列、所选择的单元格,或三维单元格区域。 如果以图形描述,上述Excel VBA对象层次结构大致如下所示: 注:上图仅仅是Excel VBA对象模型层次结构的很小一部分。...例如,假设想对一组特定的对象执行某些操作,如果所有这些对象都是同一集合的一部分,则可以构造VBA代码以遍历集合的每个成员并执行所需的操作。可以想得到,这种结构比单独列出每个集合成员更简单。...Sheets,特定工作簿中所有工作表的集合,此时与工作表类型无关,包含常规工作表和图表工作表。 引用对象 在编写VBA代码时,了解如何引用对象是至关重要的。...如何知道要处理的具体单元格区域。 这就需要处理如何引用集合内的特定对象。可以使用两种方法。 方法1:使用对象名称,其语法为:集合名(“对象名”)。

    4.6K30

    Excel图表学习76:Excel中使用超链接的交互式仪表图

    要创造这样一份图表,只需要一堆数据、一张图表、一行VBA代码和一些小技巧。 1.示例数据 仔细观察图1,会发现我们只有一个图表,并且根据用户选择的选项来更改图表的源数据。...只需设置4列区域(因为有4个图表),这样就可以放置图表和鼠标悬停单元格以供选择,如下图3所示。 图3 4.创建翻转效果 需要一个简单的宏或UDF(用户自定义函数)来根据用户鼠标指向的位置来更改系列。...我们知道,Excel不允许函数更改其他单元格中的值或者对其格式化。然而,如果从超链接来使用函数,则该限制不适用!!!...随着valSelOption的变化,图表的数据也会发生变化,得到新的图表。 假设系列名称在单元格区域B3:E3,我们在所有4个单元格中输入超链接公式。...注意,对超链接单元格进行自动换行,以便在鼠标悬停在单元格上的任意位置时链接有效,而不仅仅是向下箭头符号。

    2.5K20

    VBA基础:复制格式、选取单元格及复制工作表的示例代码

    标签:VBA 将某工作表中的格式转换到另一个工作表 示例代码: Sub TransferFormat() '源格式工作表 Dim sht1 As Worksheet '要应用格式的工作表 Dim...例如,选择当前工作表单元格D5: ActiveSheet.Cells(5, 4).Select 或者: ActiveSheet.Range("D5”).Select 选择另一个工作表中的单元格E6: Application.Goto...Sheet2").Range("E6")) 或者,先激活该工作表再选择: Sheets("Sheet2").Activate ActiveSheet.Cells(6, 5).Select 选择当前工作表中的单元格区域...Range(Cells(2, 3), Cells(10, 4)).Select 选择另一个工作表中的单元格区域D3:E11: Application.Goto ActiveWorkbook.Sheets...或者,先激活该工作表再选择: Sheets("Sheet3").Activate ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select 选择不同工作簿中的单元格区域

    41100

    常见的复制粘贴,VBA是怎么做的

    例如,在本文包含的VBA代码示例中,源数据所在的单元格区域引用如下所示: Worksheets(“Sample Data”).Range(“B5:M107”) 这个引用不是完全限定的对象引用。...Excel功能区中的复制命令 在使用VBA代码复制单元格区域之前,看看Excel功能区中的“复制”按钮命令。...Excel VBA使用Range.Copy方法复制粘贴 Range.Copy方法的主要用途是复制特定的单元格区域。...此表显示了100名不同销售经理按单位数和总美元价值对特定项目(A、B、C、D和E)的销售额。第一行(主表上方)显示每个项目的单价,最后一列显示每位经理的销售总值。...为了在使用VBA时控制在特定目标单元格区鞓内复制的内容,必须了解Range.PasteSpecial方法。

    12.2K20

    Excel VBA编程

    **如果记得某个函数大致拼写,在编写代码时只要在【代码窗口】中输入“VBA.”,就可以在系统显示的函数列表中选择需要使用的函数。...'选中活动工作表中的第F-G列' activesheet.columns(3) '选中活动工作表的第6列' 使用union方法合并多个单元格区域 application对象的union方法返回参数指定的多个单元格区域的合并区域...调用range对象的delete方法可以删除指定的单元格,但与手动删除单元格不同,通过VBA代码删除单元格,excel不会显示【删除】对话框。...想让excel在删除指定的单元格后,按自己的意愿处理其他单元格,我们需要编写VBA代码将自己的意图告诉excel。...,address指定超链接的地址,subaddress指定超链接的子地址,TexttoDisplay指定用于显示超链接的文字 执行程序的自动开关——对象的事件 让excel自动相应我们的操作 打开thisworkbook

    45.8K33

    啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Range属性

    VBA允许用户以多种不同的方式引用单元格区域。 什么是Range对象 Range对象代表工作表中的单元格区域,这意味着可以使用Range对象来引用: 单个单元格 一行或一列单元格。...在基本层级上,当引用特定对象时,可以通过引用其所有父对象来告诉Excel该对象是什么。换句话说,将遍历Excel的VBA对象层次结构。...特别是,这里并没有指定所引用的特定Excel工作簿或工作表。为此,必须理解下面的内容。 从集合中引用对象 在VBA中,对象集合是一组相关的对象。...继续上面相同的例子,可写为: Range 使用Range属性引用Range对象 在上面的示例中,我们使用了Range代表要引用的单元格区域,在实际代码中,需要指定想要处理的特定单元格区域。...可以按如下方式引用整行或整列: 行:Range(“行号:行号”) 列:Range(“列字母:列字母”) 例如,如果要引用特定工作表的第一行,其语法为: Range(“1:1”) 如果要引用第一列(列A)

    6.7K20

    啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Cell属性和Offset属性

    VBA对象可以是工作表(在Worksheet.Cells属性的情形)或可以是单元格区域(Range.Cells属性的情形)。 行号和列号是行和列的编号,通常使用数字。...替代的语法是: 表达式.Cells(单元格索引) 在这种特殊情况下,只有一个参数:相关单元格的索引。 那么,VBA如何确定一个单元格的索引呢?...返回一个单元格,该单元格位于单元格A1下方1行和右侧1列。...在某些情况下,可能希望创建一个相对引用,Range.Offset属性只需要移动一定数量的行或列(但不能同时移动行或列)就可以找到它应该返回的单元格。在这些情况下,可以忽略不相关的参数。...在这种特殊情况下,单元格区域由特定的指定区域确定。Range.Item属性基于使用的参数访问该区域内的特定单元格。

    4.1K40

    VBA小技巧14:拆分带有换行的单元格中的文本

    学习Excel技术,关注微信公众号: excelperfect 在Excel中,我们可以使用“分列”功能(即“文本到列”),很容易地将单元格中带有特定分隔符的文本拆分到不同的列中。...但是,对于使用组合键换行的文本,不能够使用这个功能。例如,下图1所示的单元格中的数据,想要将其拆分到不同的列中,“分列”功能对其无效。...图1 我们可以使用一段VBA代码来实现。 下面的VBA代码将当前单元格中以换行符分隔的文本拆分到其相邻单元格中,如下图2所示。...图2 代码如下: Sub SplitText() '拆分当前单元格中使用换行符分隔的文本 Dim varSplit As Variant Dim lngTotal As Long...然后,将拆分的值放置到当前单元格相邻的单元格区域中。

    4.5K31

    VBA代码应用示例:基于时间筛选数据

    标签:VBA 在筛选数据时,通常是筛选满足特定条件或者介于两个条件之间的信息,例如基于多个条件的筛选或者筛选两个日期之间的数据。...然而,总是会遇到一些特殊情形,例如,单元格中包含有日期和时间,如果单元格中的时间大于指定的时间,就获取该单元格所在行的数据。这就是本文要解决的问题。 这里使用VBA代码,但使用了辅助列。...也就是说,代码生成一个辅助列,来判断其对应的单元格中的时间是否大于指定时间,如果是则在辅助列单元格中输入1,否则为0。然后,基于该列应用筛选,将筛选出的数据复制到指定位置。...如果指定时间为18时,将判断含有日期和时间的单元格(在列D)中的时间是否大于18时的公式如下: =IF(HOUR(D2)>=18,1,0) 在VBA中,将公式放置在引号中:“=IF(HOUR(D2)>=...完整的代码如下: Sub FilterHelperCol() Dim lr As Long Dim rng As Range Dim sh As Worksheet Set

    1.3K30

    VBA专题10-2:使用VBA操控Excel界面之设置工作表

    本文主要讲解操控工作表中一些界面元素的VBA代码。 名称框 名称框中的名字是为单元格区域定义的名字,可以由用户定义名称,或者由Excel自动创建,例如Print_Area和表1。...示例代码: '设置距离窗格或窗口顶部的特定行 '设置距离顶部行5行 ActiveWindow.ScrollRow= 5 '设置距离窗格或窗口最左侧的特定列 '设置距离最左侧列8列 ActiveWindow.ScrollColumn...设置滚动区域 示例代码: '设置工作表的滚动区域 '限制在单元格区域C5:J30 ActiveSheet.ScrollArea= "C5:J30" 但是,用户仍然能够通过在名称框中输入单元格地址来访问不在滚动区域中的任何单元格...:即便用户移动和重命名工作表,或者添加工作表,VBA代码将仍然引用的是正确的工作表。...注意,代表颜色值的常量可以在VBA帮助系统中查找。

    4.8K41
    领券