Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel或excel VBA:如何让用户单击单元格并将其用作现有单元格的匹配结果_Vba_Excel_User Input_Matching - Fatal编程技术网

excel或excel VBA:如何让用户单击单元格并将其用作现有单元格的匹配结果

excel或excel VBA:如何让用户单击单元格并将其用作现有单元格的匹配结果,vba,excel,user-input,matching,Vba,Excel,User Input,Matching,附件是我想做的剪贴画。我有一列列出了所有选项,第二列列出了一些项目。对于每个项目,我希望用户实际选择一个单元格,然后我可以使用该选择作为与项目的匹配。例如,如果用户单击“user1”,那么我需要用文本“user1”填充单元格D4。我怎样才能做到这一点?谢谢 在要使用所选内容的工作表代码上: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then Dim


附件是我想做的剪贴画。我有一列列出了所有选项,第二列列出了一些项目。对于每个项目,我希望用户实际选择一个单元格,然后我可以使用该选择作为与项目的匹配。例如,如果用户单击“user1”,那么我需要用文本“user1”填充单元格D4。我怎样才能做到这一点?谢谢

在要使用所选内容的工作表代码上:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Column = 1 Then
        Dim s As String
        s = Cells(Target.Row, Target.Column)
        Sheets("SHEETNAME").Range("D4") = s
    End If

End Sub

您可以使用工作表事件处理程序。根据具体情况,使用SelectionChange或双击

例如,在工作表代码模块中:

此代码查找用户选择第1列中的单元格,然后使用选择的值更新D4

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        If Target.Column = 1 Then
            Range("D4").Value = Target.Text
        End If
    End If
End Sub
请记住,如果用户使用键盘选择一个单元格,这也会更新,这就是为什么您可能更喜欢使用before双击事件:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
(如果使用此选项,还需要将Cancel=True添加到上述代码中,否则将允许用户编辑该单元格中的值)


希望这有帮助

我可以让用户将他们想要匹配的单元格一直拖到目标,即D4吗?我不知道这是什么意思。他们可以单击单元格,然后单击并拖动单元格边框,将值移动到新的范围,这是excel的固有功能。你希望他们能够做到这一点,但只是让它复制细胞?因为如果是这样,您不需要编程解决方案,您需要在执行上述操作时按Ctrl键。我是否可以让用户将要匹配的单元格一直拖到目标位置,即D4?该功能实际上直接内置到excel中。将鼠标悬停在单元格的边框上,直到出现带箭头的十字,然后单击并将单元格拖动到所需位置。