【发布时间】:2012-01-27 14:06:46
【问题描述】:
我有一个场景通过 VB.NET 使用日期单元格生成和验证 excel 单元格值,当我在单元格中键入一个值时一切正常,但是当我在单元格中复制粘贴它接受的任何字符串值时从不验证。
问题:我想从 VB.NET 限制单元格中的粘贴 (Ctrl-V)。我怎样才能做到这一点?
这是我的代码:
worksheet.Range(DateRange).Validation.Delete()
worksheet.Range(DateRange).Validation
.Add(ValidationType.Date, ValidationAlertStyle.Stop,
ValidationOperator.Greater, dt, Nothing)
worksheet.Range(DateRange).NumberFormat = "mm/dd/yyyy"
worksheet.Range(DateRange).Validation.IgnoreBlank = True
worksheet.Range(DateRange).Validation.InputTitle = "Excel Validation"
worksheet.Range(DateRange).Validation.ErrorTitle = "Error in Date"
【问题讨论】:
-
副本的来源是什么?如果这些是单元格,则可能是您在粘贴日期时删除了验证。
-
嗨 Vash,副本的来源可以是除日期以外的任何内容(字符串),该单元格接受不是日期的值。所以我认为我们应该限制该单元格中的复制粘贴。请给我一些关于如何使用 VB.NET 做到这一点的想法。
-
@Ramesh。我很确定在 Excel 中限制复制和粘贴但仍允许编辑的唯一方法是通过宏捕获它。正如 Luke 在下面显示的那样,您可以编写宏来执行此操作。要将这些宏放入工作簿,您可以使用 this tutorial 帮助您通过 VB.NET 编写它们。