根据用户输入的单元格地址选择单元格的代码

编程语言 2026-07-12

我正在尝试在电子表格中创建一个代码,让用户输入工作表名称和单元格地址,然后选中该单元格,例如用户输入工作表名为“Data”、单元格为“B10”。代码随后在工作表“Data”中选中单元格B10。

This where I've got to so far:

Sub SelectCellBasedonUserInput()

Dim wksCellstoCopy As Worksheet

Dim wksCopiedData As Worksheet

Dim CopyCell As String

Dim CopyWks As String

Dim wksData As Worksheet

Set wksCellstoCopy = ThisWorkbook.Worksheets("Cells to Copy")

Set wksCopiedData = ThisWorkbook.Worksheets("Copied Data")

copyworksheet = wksCellstoCopy.Range("A2").Value

CopyCell = wksCellstoCopy.Range("C2).Value

End Sub

如何从CelltoCopy中取值,并用它来实际选中一个单元格?

解决方案

根据用户输入选择一个范围

在此处输入图片描述

Sub SelectCellBasedOnUserInput()

    ' Define constants.
    Const INPUT_SHEET_NAME As String = "Cells to Copy"
    Const INPUT_SELECT_SHEET_NAME_ADDRESS As String = "A2"
    Const INPUT_SELECT_SHEET_RANGE_ADDRESS As String = "C2"

    ' Reference the workbook.
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code

    ' Reference the Input sheet.
    Dim wsInputs As Worksheet: Set wsInputs = wb.Sheets(INPUT_SHEET_NAME)

    ' Store the inputs (sheet name, range address) in variables.
    Dim SelectSheetName As String: SelectSheetName = _
        CStr(wsInputs.Range(INPUT_SELECT_SHEET_NAME_ADDRESS).Value)
    Dim SelectSheetRangeAddress As String: SelectSheetRangeAddress = _
        CStr(wsInputs.Range(INPUT_SELECT_SHEET_RANGE_ADDRESS).Value)

    ' Reference the Select sheet.
    Dim wsSelect As Worksheet
    On Error Resume Next
        Set wsSelect = wb.Worksheets(SelectSheetName)
    On Error GoTo 0
    If wsSelect Is Nothing Then
        MsgBox "There is no worksheet named """ & SelectSheetName & """!", _
            vbExclamation
        Exit Sub
    End If

    ' Reference the Select range.
    Dim rgSelect As Range
    On Error Resume Next
        Set rgSelect = wsSelect.Range(SelectSheetRangeAddress)
    On Error GoTo 0
    If rgSelect Is Nothing Then
        MsgBox """'" & wsSelect.Name & "'!" & SelectSheetRangeAddress _
            & """ is no valid range reference!", vbExclamation
        Exit Sub
    End If

    ' Select the Select range.
    Application.Goto rgSelect

End Sub
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章