Excel,目标列,目标偏移量,可能从另一张表拉?

我写了下面的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Column = 6 Then Call Current30(Target.Offset(0, -4).Text, Target.Offset(0, 10).Text, Target.Offset(0, 11).Text) ElseIf Target.Column = 7 Then Call Current(Target.Offset(0, -4).Text, Target.Offset(0, 9).Text, Target.Offset(0, 10).Text) End If End Sub 

如果你不明白的是什么,你需要点击单元格,使用当前所在的行,然后根据所选单元格的偏移量在同一行中select3个单元格。 我还有另一部分吐出来,所以我可以在别的地方使用它。

我正在移动存储在3个单元格中的信息,并将它们拖到另一个表单上。 但是,我不知道如何才能完成同样的任务,而是从另一张表中拉出来,谁能帮我解决这个问题?

编辑

为了澄清这一点,我将select的单元格将在一张表中,我需要从同一行上的3个单元格拉出的信息将在第二张表格中。

将现有的代码移到其他工作表模块。 只要Current30()Current()例程中没有任何内容具有当前工作表的硬引用(通过名称或数字来指定),那么您将成为黄金。

如果他们明确地引用它,修改它们以完成他们相对于传入的3个单元格的所有工作,或修改子程序调用以传递当前工作表并使用它。

更新根据你的OP的澄清:

 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Dim OtherSheet as worksheet Set OtherSheet = Workbooks("Sheet2") 'change the sheet name to suit If Target.Column = 6 Then Call Current30(OtherSheet.Cells(Target.Row, Target.Col-4).text, _ OtherSheet.Cells(Target.Row, Target.Col+10).text, _ OtherSheet.Cells(Target.Row, Target.Col+11).text) ElseIf Target.Column = 7 Then Call Current(OtherSheet.Cells(Target.Row, Target.Col-4).text, _ OtherSheet.Cells(Target.Row, Target.Col+9).text, _ OtherSheet.Cells(Target.Row, Target.Col+10).text) End If End Sub 

应该为你做。

我能够使用以下VBA得到它的工作:

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) If Target.Column = 9 Then Call Email(ThisWorkbook.Sheets("Sheet2").Range("B" & Target.Row).Text, _ ThisWorkbook.Sheets("Sheet2").Range("C" & Target.Row).Text, _ ThisWorkbook.Sheets("Sheet2").Range("D" & Target.Row).Text, _ ThisWorkbook.Sheets("Sheet2").Range("E" & Target.Row).Text, _ ThisWorkbook.Sheets("Sheet2").Range("F" & Target.Row).Text) End If Cancel = True End Sub Private Sub Email(ByVal VV As String, ByVal WW As String, ByVal XX As String, ByVal YY As String, ByVal ZZ As String) Dim dblShellRetn As Double dblShellRetn = Shell("C:\Program Files (x86)\AutoHotkey\AutoHotkeyU32.exe" & _ Chr(32) & Chr(34) & "C:\Scripts\Script.ahk" & Chr(34) & _ Chr(32) & Chr(34) & VV & Chr(34) & _ Chr(32) & Chr(34) & WW & Chr(34) & _ Chr(32) & Chr(34) & XX & Chr(34) & _ Chr(32) & Chr(34) & YY & Chr(34) & _ Chr(32) & Chr(34) & ZZ & Chr(34), vbNormalFocus) End Sub