Tag: validation

Excel和macros – 使用数据validation进行自动筛选

我是使用数据validation自动筛选,下面的代码工作,如果我有在同一电子表格中的数据。 但是,我有不同的工作表中的数据,我希望他们根据我创build的数据validation列表上的select进行筛选。 有一些帮助,请让我知道如何解决这个问题。 提前致谢! Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Target.Address = "$C$2" Then Set r = Me.AutoFilter.Range If Len(Trim(Target.Value)) > 0 Then r.AutoFilter Field:=1, Criteria1:=Range("C2").Value Else r.AutoFilter Field:=1 End If End If End Sub

使数据validation列表可search

我需要一些帮助,使数据validation列表更容易search/使用。 在我的数据validation列表中,我有大约600个供应商名称,并且使得向下滚动以按字母顺序查找正确的名称变得非常繁琐。 有什么办法让列表可以search吗? 另外,如果可能使得可search,则每个单独的单元格中都需要search,因为几乎每天都会添加一个新的logging,供应商名称(从下拉列表中select)以及其他信息。 我已经尝试了一个combobox,但它似乎并没有工作,或者我没有做正确的。 任何build议将不胜感激。 谢谢!

无法获得唯一性validation工作在我正在上传的Excel文件

我的客户端模式有两个属性:: :name和:address (这是我们客户网站的url)。 这个应用程序的重点在于查看一个公司是否在呼叫列表或客户端上,然后拨打电话进行查找,以便用户可以input他们的url,看他们是否可以打电话。 我正在使用Ruby 2.3.1和Rails 4.2.6 我有一个唯一性validation以及:addressvalidation设置:address ,但是当我导入一个xlxs文件时,客户端地址已经在数据库中,它仍然上传它们,只是覆盖原来的条目。 同时,如果我不包含地址,则在线validation确实起作用。 如果我以标准Client#newforms逐一添加公司,那么唯一性validation确实起作用。 只是没有与卓越。 我使用这里find的方法: http : //railscasts.com/episodes/396-importing-csv-and-excel?autoplay= true和在这里: https : //github.com/railscasts/396-importing-csv -and-的Excel /树/主/存储与-validation 我正在使用client_import模型和控制器来尝试做这个工作。 这是我的客户端模型:client.rb class Client < ActiveRecord::Base #attr_accessible :name, :address validates :address, uniqueness: { case_sensitive: false}, presence: true def self.search(q) where("name LIKE ?", "%#{q}%") where("address LIKE ?", "%#{q}%") end def self.import(file) spreadsheet = open_spreadsheet(file) […]

Excelvalidation在vba脚本保存到新工作簿时中断

回答! 感谢大卫指出我的问题。 我留下了是否有助于别人的问题。 见下面的答案。 我有一个VBA脚本将每个工作表保存到一个新的工作簿,但是当我打开新的工作簿时,上一张工作表的validation不起作用。 我还发现,当新旧工作簿都打开时,validation工作在两张表上。 当我closures旧的工作簿时,新工作簿上的validation不起作用。 我已经读过,如果版本比2013年早,那么validation必须位于同一页面或命名范围内。 我已经尝试了这两个,但没有改变任何东西。 我怎样才能使validation工作在新的工作簿上? 编辑 :旧书打开时validation的原因是因为validation将命名范围连接到旧书中的命名范围。 如果我更改新书上的单元格,validation不会更改。 因此(见编辑2) 编辑2 :如果是这种情况,我如何重新命名新工作表中的范围,并validation该范围的单元格? 例如,我需要一些VBA为范围AF2:AF8指定一个名称,然后validation另一个范围O2:O25000,以便它只能使用第一个范围。 编辑3可能的解决方法是在将工作表保存到新的工作簿之前,为范围创build一个新的validation。 我试图用下面的代码做到这一点,但它仍然无法正常工作: vRange = ThisWorkbook.Worksheets(2).Range("A1:G200") 'Assigning my ranges IdCo = ThisWorksheet.Range("AF2:AF8") MeE = ThisWorksheet.Range("AG2:AG7") GrReEf = ThisWorksheet.Range("AH2:AH5") CyRePl = ThisWorksheet.Range("AI2:AI4") IdCo1 = ThisWorksheet.Range("O2:O25000") For i = 5 To ThisWorkbook.Worksheets.Count ThisWorkbook.Worksheets(i).Range("AF1:AL200").Value = vRange 'Actually doing the validations With IdCo.Validation […]

如何循环访问具有特定单元格范围的列,并在VBA中设置数据validation?

我是VBA的新手,我试图创build一个程序来循环遍历具有特定单元格区域的列,并为这些单元格创build一个数据validation。 我select了“文本长度”选项 – 我希望最小值为1,最大值为单元格引用(但是,单元格引用也应该随各列一起更改)。 这是我迄今为止 – 从使用macroslogging和编辑代码一点。 我设置了一个范围variables(对于第一个循环,应该看起来像R16C2:R500C2),以便它在循环列中select给定的范围。 “公式2”应该随给定列而改变,但应保留在第14行。 任何帮助表示赞赏! Sub Validation() ' ' Validation Macro For i = 2 To 84 Dim ranges As String ranges = "R16C" + Str(i) + ":R500C" + Str(i) With ThisWorkbook.Worksheets(1) Columns(i).Select Application.Goto Reference:=Range(ranges).Select With Selection.Validation .Delete .Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="1", Formula2:="=$B$14" .IgnoreBlank = True .InCellDropdown = […]

无效的圆圈消失,当Sub结束(VBA)

我想圈出这样的无效数据: 用户保存文档时应该出现圆圈,所以我创build了这个函数: Private Function clearInvalidCircles(sheetName) With Sheets(sheetName) .ClearCircles ShapesBefore = .Shapes.Count .CircleInvalid ShapesAfter = .Shapes.Count If ShapesAfter > ShapesBefore Then MsgBox "Invalid entries are marked with a red circle, please change it to a valid input." End If End With End Function …并将其添加到Workbook_BeforeSave函数中: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) clearInvalidCircles "Sheet1" End […]

循环数据validation; 设置范围=不基于单元格的数据validation列表

我确切地知道我的问题是什么,但找不到解决scheme。 我有两个工作表,它们运行的​​代码几乎相同,但第二个工作表是第一个表头的一个子工作表。 这是我的代码: Dim inputRange, inrng2 As Range Dim c, d As Range Set inputRange = Evaluate(ws2.Range("D1").Validation.Formula1) For Each c In inputRange temp = c.Value ws2.Cells(1, 4).Value = temp ws2.Activate ws2.PrintOut ws3.Activate Set inrng2 = Evaluate(ws3.Range("D1").Validation.Formula1) For Each d In inrng2 temp = d.Value ws3.Cells(1, 4).Value = temp ws3.Activate ws3.PrintOut Next d 我的问题是,inrng2给我一个types不匹配的错误。 这是因为我的ws3表单的数据validation是由代码先前在表单的不同部分驱动的: ThisWorkbook.ws3.Activate […]

eXcel的VBA使用正则expression式来validation电子邮件

所以我正在寻找的东西,因为我是新来的正则expression式,是否有可能取代我的“无效”返回语句与类似的声明注释掉在下一行,其中的字符和/或字符#expression失败了。 下面我们使用“msteede48 @ hotmail @ .com”作为myEmailvariables的示例input… Option Explicit Function ValidEmail(myEmail As String) As String Dim regExp As Object Set regExp = CreateObject("VBScript.Regexp") If Len(myEmail) < 6 Then ValidEmail = "" Else With regExp .Global = True .IgnoreCase = True .Pattern = "^(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}$)(?=[a-z0-9.!#$%&'*+/=?^_`{|}~-]{1,64}@)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?=[a-z0-9-]{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" End With If regExp.Test(myEmail) = True Then ValidEmail = "Valid" Else ValidEmail = […]

Excel数据validation与整数和特定文本

我想询问是否可以结合两个数据validation选项,特别是整数(最小和最大值为0到999)和特定的文本,这是“不适用”。 我知道这是基本的数据validationbutton,这是不可能的,我想如果这是可能的VBA。 我希望参与者能够input介于0到999之间的值,这与截止date前的date有关。 但是,如果上述项目不适用于他们,我希望另一个选项“n / a”可用。 谢谢!

Excel VBA – 如何validationinput在某一列

我有一个脚本,要求一个起始单元格 Set myCell = Application.InputBox( _ prompt:="Choose a starting field", Type:=8) If myCell = Null Or myCell = "" Or Len(myCell.Value) < 3 Or Len(myCell.Value) > 12 Then MsgBox "Incorrect cell value" Exit Sub Else 所以,我有这些检查给定单元格的值,所以如果validation不通过脚本将不会运行。 我需要的是validation,以检查是否在某一列的细胞(D在我的情况)。 所以我需要validation来说“是D列中选定的单元格? 如果是,继续,如果没有停止。 我已经无情地search,以尝试find这种比较,但我只是没有给它一个很好的查询。 任何帮助表示赞赏。 谢谢