Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Vba 在列中添加数据_Vba_Excel - Fatal编程技术网

Vba 在列中添加数据

Vba 在列中添加数据,vba,excel,Vba,Excel,我被这部分所困扰,如果我必须单击工作表中的示例activeX按钮,则从另一个工作表保存的数据将显示在从第4行开始的O列中。如果用户单击sample2按钮,则在O列中对sample按钮所做的更改将保存在A列中,为sample2按钮保存的数据(即B列)将替换O列中的数据 Private Sub OptionButton1_Click() Dim main, data As Worksheet Dim i, lRow As Integer Set main = ThisWorkbook.Sheets

我被这部分所困扰,如果我必须单击工作表中的示例activeX按钮,则从另一个工作表保存的数据将显示在从第4行开始的O列中。如果用户单击sample2按钮,则在O列中对sample按钮所做的更改将保存在A列中,为sample2按钮保存的数据(即B列)将替换O列中的数据

Private Sub OptionButton1_Click()
Dim main, data As Worksheet
Dim i, lRow As Integer

Set main = ThisWorkbook.Sheets("Main")
Set data = ThisWorkbook.Sheets("Data")

For i = 4 To 18 ' starts in 4 because it is where I want to start to copy the data
    lRow = lRow + 1
    main.Range("O" & i) = data.Range("A" & lRow)
Next i

End Sub

这仅复制数据表中的数据。但是不知道如何做相反的一个,如果我点击另一个按钮,当前在O列中的数据将保存在数据表的A列中。谢谢。

只需更改以下内容:

data.Range("A" & lRow) = main.Range("O" & i)
进入:


现在将数据O中的值放入数据A中

以上代码从Main中获取值并将其放入数据中。当您声明:这仅复制数据表中的数据?我的意思是从复制的数据表中复制到主表/在同一行中声明多个变量时要小心,您仍然必须为每个变量编写类型,否则它们将是变量:Dim Main As Worker,数据作为工作表,Dim i作为整数,lRow作为整数。此外,不需要循环,因为您的范围不是动态的:main.RangeO4:O18.Value=data.RangeA4:A18.Value足够了。在解释您想要做什么时,您能更清楚一些吗?当我们点击Sample:Cloumn时,数据工作表的A被复制到主工作表的O列中。当我们点击Sample2时:main的O列被复制到数据的Cloumn A中,与Sample完全相反。但是用B列代替O列会怎么样??您可以编辑您的问题吗?只有在用户单击另一个按钮时,才能将数据从主数据表复制到数据表。@ramj您可以使用您的代码创建新按钮并更改我发布的内容。
data.Range("A" & lRow) = data.Range("O" & i)