精华内容
下载资源
问答
  • VBA设置数据有效性(取列数据)

    千次阅读 2019-04-11 16:57:58
    On Error Resume Next 'site With Sheets("site").Columns(4).Validation .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=tmpl!$A:$A" End Wit...
      On Error Resume Next
        'site
        With Sheets("site").Columns(4).Validation
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=tmpl!$A:$A"
        End With
        Sheets("site").range("D1:D6").Validation.Delete
    

    具体方法的使用请参考MSDN

    联动demo

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim tarVal As String
        tarVal = Target.Value
        If tarVal <> "" And Target.Column = 1 Then
            Debug.Print "a"
            Debug.Print Target.Row
            Debug.Print Target.Column
            Debug.Print Sheet2.Range("a:a").Find(Target.Value).Address
            Debug.Print Sheet2.Cells(Sheet2.Range("a:a").Find(Target.Value).Row, 2).Value
            
             With Sheets("sheet1").Cells(Target.Row, 2).Validation
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Replace(Sheet2.Cells(Sheet2.Range("a:a").Find(Target.Value).Row, 2).Value, ";", ",")
            
            End With
            
            
            
        End If
    End Sub
    
    展开全文
  • vba 数据有效性backing up your data will always be best practice.备份数据永远是最佳实践。 That being said, there are times when backing up your data can prove difficult in automation. An example...

    vba 数据有效性

    There is no back button, no CTRL+Z when a script is run through Excel. Once you run a macro, that’s it, there is no going back. You pose the risk of losing all your raw data if it isn’t backed up. We all know how important data integrity is;

    通过Excel运行脚本时没有后退按钮,没有CTRL + Z。 一旦运行了宏,就可以了。 如果未备份所有原始数据,则可能会丢失所有原始数据。 我们都知道数据完整性的重要性。

    backing up your data 备份数据

    will always be best practice.  

    永远是最佳做法。

    That being said, there are times when backing up your data can prove difficult in automation. An example I faced was when I automated remote logins into hundreds of switches and routers using SecureCRT and VBScript. The code automatically pulled the data, parsed it accordingly, and dumped the raw data into an Excel template I created. Once this was completed, the VBA script was triggered, reports were generated, and emailed to the appropriate people. 

    话虽如此,有时备份数据在自动化中可能会遇到困难。 我遇到的一个例子是,当我使用SecureCRT和VBScript自动将远程登录到数百台交换机和路由器中时。 代码自动提取数据,进行相应的解析,然后将原始数据转储到我创建的Excel模板中。 完成此操作后,将触发VBA脚本,生成报告,并通过电子邮件发送给适当的人员。

    The down side I faced was when things didn’t go according to plan, requiring the data pull again, I would lose hours of time, as the script had to remotely login and pull the data a second time. To remedy this, I wrote some code that calls the macro-enabled template, copies the data dump and creates a new workbook. This way, the raw data is saved and the script runs on a copy of the data, instead of the original data set. 

    我面临的不利方面是,当事情没有按计划进行时,需要再次提取数据,这将浪费数小时的时间,因为脚本必须远程登录并再次提取数据。 为了解决这个问题,我写了一些代码,调用了启用了宏的模板,复制了数据转储并创建了一个新的工作簿。 这样,将保存原始数据,并且脚本将在数据副本(而不是原始数据集)上运行。

    There were also times that the reports I created included drop down lists. I wanted to ensure only the options listed could be chosen. The data that the drop down list used was located on a separate worksheet. A user could easily add or change the drop down list options by editing the list. To prevent this from happening, you can make the worksheet very hidden, preventing any alterations in the data as shown below. 

    有时候,我创建的报告包括下拉列表。 我想确保只能选择列出的选项。 下拉列表使用的数据位于单独的工作表上。 用户可以通过编辑列表轻松添加或更改下拉列表选项。 为防止这种情况发生,您可以使工作表非常隐藏 ,以防止数据中的任何更改,如下所示。

    Sub Copy_WB
    
    Dim wbReport As Workbook
    
    'This copies all the worksheets from your template into report
    ‘Worksheets are put in an array, you can add as many as you need
    
    Worksheets(Array("First WS", "Second WS", "Third WS", "Fourth WS")).Copy
    
    'Saves a local copy of your WB.
    ‘This also renames the file with current date.
    
    ActiveWorkbook.SaveAs Filename:="Your workbook name here " & Format(Date, "Long Date") & ".xlsx", FileFormat:=51
    
    'we want to make sure that we are working with the right workbook
    ‘This alse saves the copy as a macro-enabled workbook
    
    Set wbReport = Workbooks.Open("Your workbook name here " & Format(Date, "Long Date") & ".xlsx")
    
    ‘Define and set worksheets
    
    Dim firstWS As Worksheet
    Set firstWS = wbReport.Worksheets("First WS")
       
    Dim secondWS As Worksheet
    Set secondWS = wbReport.Worksheets("Second WS")
       
    Dim thirdWS As Worksheet
    Set thirdWS = wbReport.Worksheets("Third WS")
       
    Dim fourthWS As Worksheet
    Set fourthWS = wbReport.Worksheets("Fourth WS")
    
    ‘Let’s REALLY hide the data in the fourth worksheet using this code, ensuring users are unable
    ‘Unable to unhide it
    
    wbReport.Sheets("Fourth WS").Visible = xlSheetVeryHidden
    
    End Sub
    

    That's it, you can now safely ensure the integrity of your raw data by automatically copying it into a new workbook. Protect your data, just as you would safeguard your home, by hiding data in a way that only VBA can. A user is unable to easily view a very hidden worksheet, whereas hidden worksheets are viewable by simply selecting unhide. Using the code above will help keep your data safe and prevent alterations of specified worksheets.

    就是这样,您现在可以通过自动将原始数据复制到新工作簿中来安全地确保原始数据的完整性。 通过以仅VBA可以的方式隐藏数据来保护您的数据,就像保护您的房屋一样 。 用户无法轻松查看非常隐藏的工作表,而隐藏的工作表仅通过选择取消隐藏即可查看。 使用上面的代码将有助于确保您的数据安全,并防止更改指定的工作表。

    翻译自: https://www.experts-exchange.com/articles/29102/Ensure-Data-Integrity-and-Privacy-with-VBA.html

    vba 数据有效性

    展开全文
  • Excel实现数据项校验的功能---VBA的编写以及数据有效性设置-附件资源
  • 1.启用宏,编写VBA,使单元格输入的内容自动转变为大写代码1Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$D$1" Then End Target = UCase(Target.Value) End Sub代码2Private Sub ...

    学习VBA的网址
    VBA比较运算符 - VBA教程™

    VBA在Excel中的应用(一):改变符合条件单元格的背景颜色

    vba判断不是空_百度知道

    测试文件
    链接:http://pan.baidu.com/s/1o7QsCJo 密码:eni7

    1.启用宏,编写VBA,使单元格输入的内容自动转变为大写

    代码1

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address <> "$D$1" Then End
        Target = UCase(Target.Value)
    End Sub

    代码2

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.count>1 then exit sub
        If Target.Address <> "$D$1" Then exit sub
        Target = UCase(Target.Value)
    End Sub

    解决方案来自:Excel D1单元格内不管输入大写还是小写字母都自动转换成大写子字母-ExcelVBA程序开发-ExcelHome技术论坛

    2.使用数据有效性检查输入的是否大写

    公式:
    =NOT(ISERROR(SUM(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))<LEN(A1)))
    解决方案来自:
    Excel 有什么办法设置单元格只能输入英文大写字母-Excel函数与公式-ExcelHome技术论坛

    3.下拉框
    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • VBA字典做数据有效性

    2018-07-20 18:39:00
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Column = 26 And Range("f" & Target.Row) = "柏广清" Then Set d = CreateObject("scripting.dictionary")rng = Sheets("基础资料")....

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 26 And Range("f" & Target.Row) = "柏广清" Then

    Set d = CreateObject("scripting.dictionary")
    rng = Sheets("基础资料").Range("c8:c9")
    For i = 1 To UBound(rng)
    d(rng(i, 1)) = ""
    Next
    a = d.keys

    Range("z" & Target.Row).Select
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=Join(a, ",")
    End With
    d.RemoveAll
    End If
    End Sub

    转载于:https://www.cnblogs.com/shida-liu/p/9343094.html

    展开全文
  • 现在有两列这样的数据,我们要将它做成如下效果 我们该如何做到呢?请见如下代码 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Columns("C:D")) Is Nothing Then Exit Sub...
  • 单元格内设置有效性,通过VBA怎么去复制呢?代码如下:Public Sub 复制单元格批注() Dim range1 As range Dim range2 As range '清除G列 Columns("G:G").Clear Set range1 = range("A1:A2&...
  • 利用Excel的数据有效性功能,可以定制下拉列表框,提高输入效率。  在使用Excel的过程中,经常需要录入大量的数据,有些重复输入的数据往往还要注意数据格式等有效性。如果每个数据都通过键盘来输入,不仅浪费时间...
  • 数据有效性验证 与文件操作_读取固定三层目录中文件名文件夹初始路径写死
  • Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Dim c As String For Each rng In Target If Not rng.Validation.Value Then Application.Undo Dim msg As String msg = "粘贴的数据不符合...
  • 数据验证(在早期Excel版本中称为数据有效性)是Excel中的常用功能,使用此功能可以确保数据的规范化,如下图A列(列表:张三,李四)和C列(列表:早班,晚班)设置了数据验证。 依次单击【数据验证】>【圈释无效...
  • VBA数据有效性互斥

    2017-04-19 09:54:00
    VBA进行有效性互斥的设置 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim D As Object Dim i Dim m Set D = CreateObject("Scripting.Dictionary") For i = 1 To 5 D(i) = "" Next i For ...
  • Excel 下拉列表数据有效性智能匹配筛选 来源公式如下(适用于2010以上版本) =OFFSET(数据!$A$1,MATCH(INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*",数据!$A:$A,0)-1,,COUNTIF(数据!$A:$A,INDIRECT("R...
  • 1、采用exce自带l数据验证功能进行验证 2、编写并内置vba脚本程序进行验证
  • 1,数据有效性检查追加。 tools => Data => Data Validation 设置 2,添加Change事件 Private Sub Worksheet_Change(ByVal Target As Range)  Dim msg  For Each c In Target  If Not c.Validation.Value...
  • VBA 数据透视表的创建

    千次阅读 2021-01-21 15:21:37
    数据透视表在刷新或移动域时自动设置格式 .DisplayErrorString 读/写 Boolean False 如果数据透视表在有错误的单元格中显示用户自定义的错误字符串,则该值为 True。 .ErrorString 返回...
  • 有效性多选.xlsm

    2021-01-08 11:26:58
    有效性多选,可以进行多次有效性下拉菜单选择
  • EXCEL数据有效性

    2013-06-07 20:06:59
    excel2010密码破解教程 关于Office2010密码破解工具箱 办公室密码恢复工具箱是一个全面的解决方案,恢复MS Word,Excel和Outlook中,PowerPoint和Access...MDW)。 VBA项目的微软Word,Excel,PowerPoint和Outlook文
  • EXCEL 数据有效性设置

    2014-05-20 08:07:01
    1.使单元格区域内记录不能重复输入控制  =COUNTIF(A:A,A2)=1 (直接复制此公式进去即可)    2.禁止单元格输入数字控制  =ISNUMBER(A1)   3.允许单元格只能输入数字控制  ...=LENB
  • excel vba 数据分析

    千次阅读 2019-01-20 12:20:00
    VBA(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。 第一节 标识符 一.定义 标识符是一...
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第九个专题“利用IE抓取网络数据”的第三节“利用IE,抓取解禁股票数据”,这个专题是非常有用的知识点,希望大家掌握。第四节 利用IE,抓取解禁股票数据大家好,这...
  • 今天遇到个问题,用Excel2010做的一个xls,其中包含跨工作表的数据有效性 再打开文件时,发现之前设定的有效性突然打不开了 上网调查了一番,果然有人遇到同样问题 解决办法是: 将跨工作表的数据源定义名称 ...
  • 设置数据有效性实现单元格下拉菜单的3种方法一、直接输入: 1.选择要设置的单元格,譬如A1单元格; 2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口; 3.在“设置”选项中→“有效性条件”→...
  • 经过工作中的实践,发现用VBA开发具有一定重复的功能,能够极大提高工作效率。最近,将本人曾开发的的Excel数据汇总工具,进行进一步代码和界面的优化。此文是为了广大工作在一线的表格小白做一个Excel开发的普及...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,188
精华内容 1,275
关键字:

vba设置数据有效性