【问题标题】:VBA - Using RefEdit as RangeVBA - 使用 RefEdit 作为范围
【发布时间】:2014-02-19 13:13:46
【问题描述】:

我有一个 VBA 脚本,它打开一个用户窗体,因此用户可以选择各种单元格地址来将信息从一个文件复制到另一个文件。我正在使用 RefEdit 控件来指定单元格地址,但是当我尝试使用 Workbook.Range(UserForm.RefEdit.Value) 函数时收到对象错误,因为 RefEdit 引用的格式为“'Sheet1'!X#:X#”。我知道,如果 RefEdit 只是一系列单元格,我可以做 Workbook.Worksheet.Range(UserForm.RefEdit.Value),但 VBA 脚本用于转换具有不同工作表名称的多个文件(所以我不能使用通用 Workbook.Worksheet 字符串)。有没有办法将 RefEdit 引用与工作表名称和单元格地址一起用作范围?

这是我当前的代码:

Sub ReviseFAA()
Dim FolderPath As String, FilePath As String
Dim SourceFAA As Workbook, RevisedFAA As Workbook

FolderPath = "A:\Copy of MWO File\"
FilePath = Dir(FolderPath & "*.xls")

Do While FilePath <> ""
    Workbooks.Open (FolderPath & "FAA Template.xlsx")
    Set RevisedFAA = Workbooks("FAA Template.xlsx")
    Workbooks.Open (FolderPath & FilePath)
    Set SourceFAA = Workbooks(FilePath)

    FAA_User.Show

    With SourceFAA
    RevisedFAA.Sheets("Repair Instruction").Range("U2:AD3") = .Range(FAA_User.ControlNumber.Value).Value
    End With

    FilePath = Dir
Loop

【问题讨论】:

    标签: vba excel user-controls userform


    【解决方案1】:

    试试这个:

    Range(UserForm.RefEdit.Value)
    

    删除workbook。和worksheet

    【讨论】:

    • 我检查了我的设置,R1C1参考样式没有勾选,不过谢谢你的建议!
    • 我至少需要有工作簿表达式来识别源工作簿,因为我同时打开了两个不同的文件(模板和源工作簿)。如果我删除了Worksheet 并且只有Workbook.Range(Userform.RefEdit.Value),我仍然会收到一个对象错误。我试过With Workbook.Range(UserForm.RefEdit.Value),但还是同样的错误。
    • 不,删除所有内容,只保留上面的代码。表达式 UserForm.RefEdit.Value 将考虑到您正在使用不同的文件这一事实
    • @VBA 程序员 谢谢!我没有意识到 UserForm 也会考虑工作簿,因为字符串仅表示工作表和单元格引用!你让我免于编写不必要的代码行。
    • Np,很高兴我能帮上忙。显然,CRondao 提到了我们只是没有看到它:)
    【解决方案2】:

    我试过了,效果很好:

    Dim s, w
    s = RefEdit1.Value
    Set w = Range(s)
    MsgBox w.Cells(1, 1)
    

    【讨论】:

    • 我相信这通常有效,但我试图从一系列合并的单元格中检索一个值,这就是为什么我认为我遇到了 Range Object 问题。我可能只需要拆分字符串以分隔工作表和单元格范围。
    • 嗯,这是一个非常重要的信息,你没有提到... :)
    • 我很抱歉,如果我包含太多细节,恐怕我会让大家感到厌烦,但我会发布我当前的代码,以防我可能做错了什么!
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多