2016-08-16 78 views
-2

如果我必须单击工作表中的sample activeX按钮,我坚持使用此部分,从另一工作表保存的数据将从第4行开始显示在列O中。并且if用户点击按钮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 

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

+0

上面的代码由'Main'并把它采用的值到'数据'中。当您陈述时:“这只会复制数据表中的数据”? – DragonSamu

+0

我的意思是从复制的数据是从数据表到主表/ – ramj

+1

当您在同一行中声明几个不同的数据时,请小心,您仍然必须为每个数据类型写入类型,否则它们将是变体: 'Dim main As Worksheet,data As Worksheet' and'Dim i As Integer,lRow As Integer'。另外,因为你的范围不是动态的,所以不需要循环:'main.Range(“O4:O18”)。Value = data.Range(“A4:A18”)。Value' is enough –

回答

-1

只需更改以下:

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

到:

data.Range("A" & lRow) = data.Range("O" & i) 

现在你把从Data "O"值放入Data "A"

+0

只有当用户单击另一个按钮时,才能将数据从主数据表复制到数据表。 – ramj

+0

@ramj @ramj你可以使用你的代码你有新的按钮,并改变我发布的内容。 – DragonSamu