从用户表单提交到数据库时,VBA会缩短超链接图像路径

时间:2018-10-26 02:37:35

标签: excel vba image excel-vba userform

我正在设法找出缩短提交链接时缩短图像超链接路径的最佳方法。现在,所有用户窗体数据和图像文件路径都转到其相应的行/列,但这很丑陋。我想看看如何使用VBA将文件路径缩短为文件名,或将路径更改为整个不同的词,例如“ image”。理想情况下,我想将超链接替换为“图像”一词,但不确定是否可行?

我在此站点上发现了一些有关创建要调用的函数的想法,这些想法可以缩短路径,但是我不确定在将数据提交到数据库时如何使用这些函数。

下面是我当前的代码,后面是我发现可以正常运行的功能。

   int IntQue[][] = new int[10][4];

    Scanner scanInt = new Scanner(file);
    n = 0; // for the number of instructions
    displayCycle = 0; // cycle to be displayed

    if (scanInt.hasNext()) {
        n = scanInt.nextInt(); // number of instructions taken from file
        displayCycle = scanInt.nextInt(); // cycle number taken from file
    }


            for (int i = 0; i < n; i++) {
        for (int j = 0; j < 4; j++) {
            IntQue[i][j] = scanInt.nextInt();
        }
    }

我在此站点上发现的功能可以实现-仅捕获文件名而不扩展名

- debug:
    msg: "{{ item[1] }}"
  with_subelements:
    - "{{ jenkins_ecs_containers }}"
    - containerInstanceArns

enter image description here

非常感谢 四月

1 个答案:

答案 0 :(得分:3)

您可以只使用TextToDisplay的{​​{1}}属性。

hyperlinks.add

此外,Private Sub CommandButton1_Click() Dim TargetRow As Long Dim linked_path1 As Variant Dim linked_path2 As Variant TargetRow = Sheets("Engine").Range("B3").Value + 1 'plus 1 move the row down 1 so it doesn't overrite last row value With Sheets("Database").Range("Data_Start") .Offset(TargetRow, 1) = orderid .Offset(TargetRow, 2) = ComboBox1 .Offset(TargetRow, 3) = ComboBox2 .Offset(TargetRow, 4) = ComboBox3 .Offset(TargetRow, 5) = TextBox2 .Offset(TargetRow, 6) = TextBox3 'Set named range and a variable in teh Hyperlink.Add function Set linked_path1 = .Offset(TargetRow, 7) End With Sheets("Database").Hyperlinks.Add Anchor:=linked_path1, _ Address:=filepath1, TextToDisplay:=getfilenamefrompath(filepath1) Set linked_path2 = Sheets("Database").Range("Data_Start").Offset(TargetRow, 8) Sheets("Database").Hyperlinks.Add Anchor:=linked_path2, _ Address:=filepath2, TextToDisplay:=getfilenamefrompath(filepath2) Unload UserForm2 End Sub 语句对于您的范围偏移量组也很有效。

啊,差点忘了-您仍然需要弄清楚文件名。作为URL,With...End With函数将起作用。我们可以提供与您发现的功能类似的功能。

Split()

在此功能中,您将Function getFileNameFromPath(filePath As String, Optional delim as string = "\") As String getFileNameFromPath = Split(filePath, delim)(UBound(Split(filePath, delim))) End Function 除以delim filePath两次。第一个是不言自明的,但是第二个您只是使用\函数获取拆分的最后一个索引。

更新:添加了UBound()的可选参数,因此它可以与URL(使用delim)和文件路径(使用/)一起使用。除非另行指定,否则它将默认为\