excel中如何使用VB对某些列数据的复制粘贴进行有效性校验

为了防止复制粘贴导致数据有效性校验公式失效,现在表格中使用VB加入了如下限制,整个sheet页任何不符合要求的数据都进行了限制。我想知道如果只限制比如A列和C列进行数据有效性校验,其他列不进行限制,应该如何修改VB代码?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 单元格 As Range
For Each 单元格 In Target
If Not 单元格.Validation.Value Then
Application.Undo
MsgBox prompt:="粘贴的数据不符合该单元格的数据有效性要求!", Title:="输入提示"
Exit For
End If
Next
End Sub
或者有没有其他更好的VB代码?谢谢各位!

这个就要用到vba了,其实就是visual,basic,for,application。他的语言和VB差不多。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-17
先假设你对VBA(EXCEL内嵌)有一定了解。。。在菜单-宏制作选择VB,在离开单元格事件进行检查(名字记不清了LEAVECELL?或者ENDEDIT?)
第2个回答  2019-04-15
其实不必那么麻烦,直接用VBA进行数据验证,就没那么多事了。

excel中如何使用VB对某些列数据的复制粘贴进行有效性校验
这个就要用到vba了,其实就是visual,basic,for,application。他的语言和VB差不多。

vb,vbA操作EXCEL怎么把指定数据复制到另一工作表符合条件的相应...
Match([B1], Sheets("基础数据").Range("A:A"), 0)Range("A3:D3").Copy Sheets("基础数据").Cells(X, "a")Sheets("基础数据").SelectSheets("基础数据").Range("a" & X & ":" & "d" & X).Interior.ColorIndex = 3 '修改过的区域填充红色End Sub代码复制到 修改表里 ...

怎样通过VB实现多个EXCEL中特定行列的数据的提取
依次点击键盘 alt+F11 alt+i m 把以下代码复制进去 Sub 汇总数据()Application.ScreenUpdating = False p = "d:\\提取\\"f = Dir(p & "*.xls")Do While f <> ""Workbooks.Open p & f r = r + 1 ActiveSheet.Rows(3).Copy Workbooks("汇总.xls").Sheets("sheet1").Activate ActiveS...

怎样通过VB实现多个EXCEL中特定行列的数据的提取
依次点击键盘 alt+F11 alt+i m 把以下代码复制进去 Sub 汇总数据()Application.ScreenUpdating = False p = "d:\\\\提取\\\\"f = Dir(p & "*.xls")Do While f <> ""Workbooks.Open p & f r = r + 1 ActiveSheet.Rows(3).Copy Workbooks("汇总.xls").Sheets("sheet1").Activate Act...

vb如何实现对excel表格的判断输出
第一步:把你的一列数1,2,2,5,5,5,6,7,9,10 放在EXCEL的第一列,中间不要有空单元,顺序无所谓。第二步:打开vb,在form1上放置一个控件listbox;在工程中引用EXCEL,并设置代码如下:‘将EXCEL中的数导入到LIST1中 Private Sub Form_Load()Dim newxls As New Excel.Application Di...

vbs检查excel重复行,并标示或者删除
注:Range("A1").EntireColumn.Delete 这样是删除A1整列;Range("A1").EntireRow.Delete 这样是删除A1整行;Range("A1").Delete 这是删除A1单元格 A2单元格会移上去;上述命令就好像选中A1单元格后,右击选择 -》删除 ,在弹出对话框中有四个选项。

在EXCEL中如何用VB控制单元格下移,并能判断当条件满足时相加_百度知 ...
你给的是出库...dim n as integer n=val(text1.text) *n 用来放excel表格的行数,因为不知道你有多少行,暂时用这个表示吧 Private Sub Command1_Click()for i=1 to n if cells(f,i)<>0 then cells(d,i)=Cells(d, i)+cells(f,i)end if next End Sub ...

如何用VB实现:在EXCEL文档指定区域单元格选中后,自动把这些单元格数据粘...
单击 A1:C10任何一个地方,就执行,否则不执行。无需设置 按钮 Sub 自动复制()arr = Range("A1:C10")Sheets(2).Cells(Sheets(2).Range("a65536").End(xlUp).Row + 2, 1).Resize(10, 3) = arr End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim tr, tc tr...

想用vb查出excel中的一个数据,输入标黄行、列数据后,即定位到红色数据...
这个可以使用查找功能后查找标记出来即可。

excel中用vba查找关键字,据其进行逻辑判断往特定格子中填充数据
For Each rng In Intersect(ActiveSheet.UsedRange, Columns("B")) If InStr(1, rng.Text, iStr, vbBinaryCompare) Then rng.Offset(, 3) = newStr End If NextEnd Sub实际应用时,修改iStr和newStr两个变量就可以了。---Excel资深初学者 ...

相似回答