【问题标题】:How to rename files listed at listbox?如何重命名列表框中列出的文件?
【发布时间】:2019-12-17 06:57:54
【问题描述】:

我正在尝试创建一个小程序,在文件夹中找到的文件的名称中引入一些前缀。

文件名在 Listbox1 中列出,前缀在多个 Combobox 中选择。

Listbox1 的名称与选择的 Combobox 前缀一起移动到 Listbox2,按下按钮“>>>”。 当 Listbox2 上的所有新名称都准备好后,将按下一个按钮“重命名”,文件夹中的文件名将根据 Listbox2 上的固定更改。

所有用户表单都已编程。 我在构建按钮“重命名”的代码时遇到了问题。 换句话说,取Listbox2的规定名称并更改Listbox1之前显示的各个文件的名称。 如何从列表框中读取文件的新名称并介绍相应的文件名称?

Userform Screenshot

代码:

Sub cmdMoveSelLeft_Click()
    'Variable Declaration
    Dim iCnt As Integer

    'Move Selected Items from Listbox1 to Listbox2
    For iCnt = 0 To Me.ListNewFiles.ListCount - 1
        If Me.ListNewFiles.Selected(iCnt) = True Then
            Dim changedName As String
            changedName = Me.ComboBoxKategorie.Value + "_" +         Me.ComboBoxTyp.Value + "_" + Me.ListNewFiles.List(iCnt)
        Me.ListChangedFiles.AddItem changedName
        End If
    Next

    For iCnt = Me.ListNewFiles.ListCount - 1 To 0 Step -1
        If Me.ListNewFiles.Selected(iCnt) = True Then
            Me.ListNewFiles.RemoveItem iCnt
        End If
    Next
    ComboBoxKategorie = ""
    ComboBoxTyp = ""
    TextBoxEXX = ""
    TextBoxUX = ""
    TextBoxTrakt = ""
    TextBoxGebaude = ""
    TextBoxSpecific = ""    



Sub cmdRename_Click()

Dim Msg = 'Möchten Sie fortfahern?'

   Response = MsgBox(Msg, Style, Title, Help, Ctxt)

   If Response = vbYes Then    ' User chose Yes.

        ~?????????????~

        MsgBox "Die Namen sind angepasst" & vbCrLf
        Unload Me
    End If
End Sub

【问题讨论】:

  • 到目前为止你写了什么代码?

标签: vba combobox listbox file-rename


【解决方案1】:

使用Name 关键字,如

Name "C:\Post IN\BEISPEIL_SAN_SP_U2" As "C:\Post IN\AUS_BPH_BEISPEIL_SAN_SP_U2"

当然你不会使用这样的字符串文字,但我不知道你在哪里有旧名称和新名称。一般来说,语法是

Name "FullPathOfExistingName" As "FullPathOfNewName"

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2015-09-09
    • 2017-12-28
    • 1970-01-01
    • 2018-01-13
    • 2020-12-03
    相关资源
    最近更新 更多