将冻结列中的值复制到下一个可见列

我试图在Excel中创build一个简单的button,将find冻结列后的当前列。 然后,我想写我的价值formsB1 – B4(B是冻结列),无论列后冻结列。

所以举个例子。 B现在被冻结,我滚动到下一列是G.如果我点击button,它必须将值从b1复制到g1。 如果我继续滚动,直到我在第k列,它必须从b1取值并将其复制到k1。

Sub Button2_Click() Dim value1 As Double Dim value2 As Double Dim value3 As Double Dim value4 As Double value1 = Cells(1, "B").Value value2 = Cells(2, "B").Value value3 = Cells(3, "B").Value value4 = Cells(4, "B").Value Cells(1, "C").Value = value1 Cells(2, "C").Value = value2 Cells(3, "C").Value = value3 Cells(4, "C").Value = value4 End Sub 

正如你现在所看到的,它被复制到列C是硬编码的。所以理想情况下,我希望能够得到一个知道下一列是什么的variables,并用它replacec。

理论上,我需要的列字母将始终是第三个可见列,如果有任何帮助。 请记住,我从来没有在VB或Excel编码,将不胜感激任何帮助。 我已经看了一些例子,但是他们都过于复杂,我真的不明白发生了什么事情。 所有的帮助将不胜感激。

这里有两张照片也可以解释我需要什么。

第一张图片

fi点击button这是结果。

一世 第二个图像

所以,如果我知道滚动到列K并按下button它应该复制到列K

在这里输入图像说明

先谢谢你。

 Sub Button_2_Click() Dim value1 As Double Dim value2 As Double Dim value3 As Double Dim value4 As Double Dim lastFrozenCol as Integer Dim firstCol as Integer lastFrozenCol = ActiveWindow.Panes(1).VisibleRange.Columns.Count firstCol = ActiveWindow.Panes(2).VisibleRange.Column value1 = Cells(1, lastFrozenCol).Value value2 = Cells(2, lastFrozenCol).Value value3 = Cells(3, lastFrozenCol).Value value4 = Cells(4, lastFrozenCol).Value Cells(1, firstCol).Value = value1 Cells(2, firstCol).Value = value2 Cells(3, firstCol).Value = value3 Cells(4, firstCol).Value = value4 End Sub 

如果我正确理解您的发布,您希望将硬编码范围( B1:B4 )中的值复制到当前活动单元格内和单元格下方的单元格中。 请考虑以下解决scheme:

编辑:

 Sub Button2_Click() Cells(1, ActiveWindow.SplitColumn + 1).value2 = Cells(1, 2).value2 Cells(2, ActiveWindow.SplitColumn + 1).value2 = Cells(2, 2).value2 Cells(3, ActiveWindow.SplitColumn + 1).value2 = Cells(3, 2).value2 Cells(4, ActiveWindow.SplitColumn + 1).value2 = Cells(4, 2).value2 End Sub 

问候,