精华内容
下载资源
问答
  • vb编程数组多段连续匹配用什么函数,有没有可以设置范围的eange函数?range函数的用法是什么,怎么匹配数组?
  • 边学边收集:VB.net开发Excel程序,find函数的参数如何写?Dim BBlb As Excel.Range Dim BlbAddress As Integer 'String ''With ExLapp.ActiveSheet BBlb = .range(ExLapp.Cells(trow - 1, Blb), ExLapp.Cells...

    边学边收集:VB.net开发Excel程序,find函数的参数如何写?


    Dim BBlb As Excel.Range                        

    Dim BlbAddress As Integer 'String ''

    With ExLapp.ActiveSheet

        BBlb = .range(ExLapp.Cells(trow - 1, Blb), ExLapp.Cells(2, Blb)).Find(What:="X", Lookin:=Excel.XlFindLookIn.xlValues,                 LookAt:=Excel.XlLookAt.xlWhole, SearchDirection:=Excel.XlSearchDirection.xlPrevious)
             If Not BBlb Is Nothing Then
                      BlbAddress = BBlb.Row
              End If
     End With
    展开全文
  • (2)实现上述功能的VB代码如下。划线处的语句有错,应改为________。'以下代码是将有效密文数字转换为十进制数的函数Function conv(p As String)As IntegerDim k As Integer, q As String, i As Integerk = 0: g = "...

    (2)

    实现上述功能的VB代码如下。划线处的语句有错,应改为________。

    '以下代码是将有效密文数字转换为十进制数的函数

    Function conv(p As String)

    As Integer

    Dim k As Integer, q As String, i As Integer

    k = 0: g = ""

    For i = 1 To 3

    q = Mid(p, i, 1)

    Next i

    conv = k

    End Function

    Private Sub

    Command1_Click()

    Dim st As String, p As String, res As String

    Dim c1 As String, c2 As String, c3 As String

    Dim i As Integer, d As Integer, n As Integer

    st = Text1.Text: n = Len(st)

    i = 1: res = ""

    Do While i <= n – 2    '提取有效密文,并进行转换

    c1 = Mid(st, i, 1): c2 = Mid(st, i + 1, 1):

    c3 = Mid(st, i + 2, 1)

    If c1

    d=conv(p)

    If d >= 32 And d <= 122 Then res =

    res + Chr(d)

    Else

    i = i + 1

    End If

    Loop

    Text2.Text = res

    End Sub

    展开全文
  • vb.net记录

    2020-07-26 16:37:18
    文章目录多个事件对应同一回调函数模块和...Private Sub compute_time_range_event(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_time_range.TextChanged, cbb_time_range.SelectedInd...

    语法

    运算符

    VB.Net - 运算符

    集合

    ArrayList

    Dim al As ArrayList = New ArrayList()
    Dim i As Integer
    Console.WriteLine("Adding some numbers:")
    al.Add(45)
    al.Add(78)
    al.Add(33)
    al.Add(56)
    al.Add(12)
    al.Add(23)
    al.Add(9)
    Console.WriteLine("Capacity: {0} ", al.Capacity)
    Console.WriteLine("Count: {0}", al.Count)
    Console.Write("Content: ")
    
    For Each i In al
        Console.Write("{0} ", i)
    Next i
    Console.WriteLine()
    Console.Write("Sorted Content: ")
    al.Sort()
    
    For Each i In al
        Console.Write("{0} ", i)
    Next i
    Console.WriteLine()
    Console.ReadKey()
    

    Hashtable

    Dim ht As Hashtable = New Hashtable()
    Dim k As String
    ht.Add("001", "Zara Ali")
    ht.Add("002", "Abida Rehman")
    ht.Add("003", "Joe Holzner")
    ht.Add("004", "Mausam Benazir Nur")
    ht.Add("005", "M. Amlan")
    ht.Add("006", "M. Arif")
    ht.Add("007", "Ritesh Saikia")
    
    If (ht.ContainsValue("Nuha Ali")) Then
        Console.WriteLine("This student name is already in the list")
    Else
        ht.Add("008", "Nuha Ali")
    End If
    ' Get a collection of the keys. 
    Dim key As ICollection = ht.Keys
    
    For Each k In key
        Console.WriteLine(" {0} : {1}", k, ht(k))
    Next k
    Console.ReadKey()
    

    SortedList

    Dim sl As SortedList = New SortedList()
    sl.Add("001", "Zara Ali")
    sl.Add("002", "Abida Rehman")
    sl.Add("003", "Joe Holzner")
    sl.Add("004", "Mausam Benazir Nur")
    sl.Add("005", "M. Amlan")
    sl.Add("006", "M. Arif")
    sl.Add("007", "Ritesh Saikia")
    
    If (sl.ContainsValue("Nuha Ali")) Then
        Console.WriteLine("This student name is already in the list")
    Else
        sl.Add("008", "Nuha Ali")
    End If
    ' Get a collection of the keys. 
    Dim key As ICollection = sl.Keys
    Dim k As String
    
    For Each k In key
        Console.WriteLine(" {0} : {1}", k, sl(k))
    Next k
    Console.ReadKey()
    

    Stack

    Dim st As Stack = New Stack()
    st.Push("A")
    st.Push("M")
    st.Push("G")
    st.Push("W")
    Console.WriteLine("Current stack: ")
    Dim c As Char
    
    For Each c In st
       Console.Write(c + " ")
    Next c
    Console.WriteLine()
    st.Push("V")
    st.Push("H")
    Console.WriteLine("The next poppable value in stack: {0}", st.Peek())
    Console.WriteLine("Current stack: ")
    
    For Each c In st
       Console.Write(c + " ")
    Next c
    Console.WriteLine()
    Console.WriteLine("Removing values ")
    st.Pop()
    st.Pop()
    st.Pop()
    Console.WriteLine("Current stack: ")
    
    For Each c In st
       Console.Write(c + " ")
    Next c
    Console.ReadKey()
    

    Queue

    Dim q As Queue = New Queue()
    q.Enqueue("A")
    q.Enqueue("M")
    q.Enqueue("G")
    q.Enqueue("W")
    Console.WriteLine("Current queue: ")
    Dim c As Char
    
    For Each c In q
       Console.Write(c + " ")
    Next c
    Console.WriteLine()
    q.Enqueue("V")
    q.Enqueue("H")
    Console.WriteLine("Current queue: ")
    
    For Each c In q
       Console.Write(c + " ")
    Next c
    Console.WriteLine()
    Console.WriteLine("Removing some values ")
    Dim ch As Char
    ch = q.Dequeue()
    Console.WriteLine("The removed value: {0}", ch)
    ch = q.Dequeue()
    Console.WriteLine("The removed value: {0}", ch)
    Console.ReadKey()
    

    正则表达式

    'Option Explicit On
    'Option Strict On
    
    Imports System.IO
    Imports System.Text.RegularExpressions
    
    
    Module Module1
    
        Sub Main()
            Dim strLine As String
            Dim macthStr As String
            Dim MC As MatchCollection
            Dim R As Regex
            Dim M As Match
    
            '' ==============================================================================
            ''在字符串中寻找匹配
            '' ==============================================================================
            strLine = "    "
            If Regex.IsMatch(strLine, "^\s*$") Then
                Console.WriteLine("发现空白行")
            End If
    
            strLine = "abc123def"
            If Regex.IsMatch(strLine, "\d+",RegexOptions.IgnoreCase) Then
                Console.WriteLine("发现数字")
            End If
    
            '' ==============================================================================
            ''匹配,获得匹配文本
            '' ==============================================================================
            ''----------------------------
            strLine = "abc123def456gef"
            macthStr = Regex.Match(strLine, "\d+", RegexOptions.IgnoreCase).Value
            If macthStr <> "" Then
                Console.WriteLine(macthStr)
            End If
    
            ''----------------------------
            strLine = "abc123def456gef"
            MC = Regex.Matches(strLine, "\d+", RegexOptions.IgnoreCase)
            If MC.Count > 0 Then
                Dim index As Byte
                For index = 0 To MC.Count - 1
                    Console.WriteLine("第" & index & "个匹配为" & MC.Item(index).Value)
                Next
            End If
    
            ''----------------------------
            strLine = "abc123def456gef"
            R = New Regex("\d+\w+", RegexOptions.IgnoreCase)   ''编译pattern
            M = R.Match(strLine)                               ''应用到字符串中
            If Not M.Success Then
                Console.WriteLine("没有匹配")
            Else
                Dim matchedText As String = M.Value
                Console.WriteLine("匹配字符:" & matchedText)
            End If
    
            '' ==============================================================================
            ''匹配,获得捕获文本
            '' ==============================================================================
            strLine = "abc123def456gef"
            R = New Regex("[a-z]+(\d+[a-z]+)\d+", RegexOptions.IgnoreCase)
            M = R.Match(strLine)
            If Not M.Success Then
                Console.WriteLine("没有匹配")
            Else
                Console.WriteLine("group(0)的值为:" & M.Groups(0).ToString)
                Console.WriteLine("group(1)的值为:" & M.Groups(1).ToString)
            End If
    
            '' ==============================================================================
            ''
            '' ==============================================================================
            strLine = ""
        End Sub
        
    End Module
    
    

    使用

    多个事件对应同一回调函数

    Private Sub compute_time_range_event(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_time_range.TextChanged, cbb_time_range.SelectedIndexChanged, tb_range.TextChanged
        compute_time_range()
    End Sub
    

    模块的使用

    下面是一个vb代码中模块的部分,根据分类,包含全局变量、常量、枚举类型定义、常用函数等多个部分
    在这里插入图片描述

    模块和类的区别

    类和模块均是对定义在它们内部 的项的一种封装,但从其他过程访问它们这些项的方式有所不同。
    类和模块之间的主要差异在于:

    • 类可以实例化为对象,而模块则不能
    • 类可以继承,也可以实现接口,模块则不能
    • 类和模块中成员的作用范围不同

    由于模块的数据只有一个副本,因此当程序的一部分更改模块中的公共变量时,如果程序的其他任何部分随后读取该变量,都会获取同样的值;与之相反,每个实例化对象的对象数据则单独存在。

    在类中定义的成员其作用范围在类的特定实例内, 并且只存在于对象的生存期内。要从类的外部访问类成员,必须使用全限定名称,格式为 Object.Member。另一方面,在模块内声明的成员默认情况下是公共可访问成员,任何可访问该模块的代码都可以访问它。这意味着模块中的变量是有效的全局变量,因为它们在项目中的任何地方均可见,且存在于程序的整个生存期。

    操作文本文件

    Sub Main()
    	Dim file_name As String
        Dim lines As String
    
        file_name = "abc.txt"
        Dim SR As New StreamReader(file_name)
        lines = SR.ReadLine
        While Not (lines Is Nothing)
            Console.WriteLine(lines)
            ''读取下一行文件
            lines = SR.ReadLine
        End While
        SR.Close()
    
        file_name = "def.txt"
        Dim SW As New StreamWriter(file_name)
        lines = "0123456789"
        SW.WriteLine(lines)
        lines = "abcdefghijklmn"
        SW.WriteLine(lines)
        lines = "0123456789"
        SW.WriteLine(lines)
        SW.Close()
        
    End Sub
    

    使用"插入代码段"

    插入代码段功能提供了语法模板,可以使用它较快速的插入一些代码片段,
    在这里插入图片描述

    使用ToolTip

    在VB6中,tooltip是作为控件的属性来设置的;在vb.net中,需要先添加ToolTip组件,这样,窗体和控件的属性窗口中才会多出ToolTip属性

    vb.net 教程 3-4 窗体编程 公共控件11 ToolTip

    展开全文
  • EXCEL自定义函数

    2021-01-04 16:54:36
    1、在打开的EXCEL中,按alt+F11键,打开VB 脚本开发窗口 2、右键点选文件名,插入模块 3、编写代码 代码: Function aaa(ByVal rng As Range) aaa = VBA.StrReverse(rng.Value) End Function 4、...

    序言

    EXCEL中有不少函数,但还是不能满足要求,比如:需要把某个字符串字符倒过来的函数就没有。这里,简单说明一下如何创建自定义函数。

    创建自定义函数

    1、在打开的EXCEL中,按alt+F11键,打开VB 脚本开发窗口

    2、右键点选文件名,插入模块

    3、编写代码

    代码:

    Function aaa(ByVal rng As Range)
     
        aaa = VBA.StrReverse(rng.Value)
     
    End Function
    

    4、保存,关闭窗口,至此,函数已定义完成。

     

    自定义函数的使用

    假设我们要对一个字符串进行翻转,翻转后的值写入到另一列。

    1、选中将要输入的一个单元格,点fx函数按钮

    可以看到自定义函数显示出来,如果没有显示,可以点选“或选择类别”组合框查找。

    2、选中自定义函数后,点“确定”按钮。在输入值项(这里定义的值名称为Rng,实际可改成其他的易记变量)点选要翻转的单元格:

    3、然后再点确定按钮,则字符串被翻转

    C2单元格为输出值,使用公式:aaa(B2)

    B2单元格为原值

    扩展:

    这个函数也可以像其他函数一样,通过点按单元格右下角小方块,实现快速格式填充,完成一整列的操作。

    参考:

    https://support.microsoft.com/zh-cn/office/%e5%9c%a8-excel-%e4%b8%ad%e5%88%9b%e5%bb%ba%e8%87%aa%e5%ae%9a%e4%b9%89%e5%87%bd%e6%95%b0-2f06c10b-3622-40d6-a1b2-b6748ae8231f?ui=zh-cn&rs=zh-cn&ad=cn

    展开全文
  • 5.将n个数分成偶数和奇数两部分,其中偶数在前奇数在后,要求分别对偶数和奇数进行升序排序... 实现上述功能的VB代码如下,但加框处代码有错,请改正。Dim a(1 To 100) As IntegerSub sort(left As Integer,right As...
  • VB的简单用法

    2020-09-22 17:43:02
    VB的简单用法 新建 新建一个.xlsm的文件,只有这个文件才能正常...新建的宏会在模块1中,把自己想要实现的逻辑加到宏函数中,如下: Sub Clear() Sheets("Sheet3").Range("A3:G7").Select Selection.ClearContents
  • 要实现这个功能需要先启用宏,并在开发工具里面打开VB编辑器,在左边右键点击需要自定义函数的工作表名称,点插入模块,在模块1中输入以下代码步骤1步骤2Function CountColor(col As Range, countrange As Range) As...
  • 在JS中可以使用excel对象range赋值,但不能直接使用js的...通过如下函数可以转换将JS的数组转换成VB数组: function toVBArray1(jarray) { var dict1 = new ActiveXObject('Scripting.Dictionary'); for (var...
  • 函数作用:按SplitType取得RangeName串值中的起始位置12 '7.函数作用:将金额数字转成中文大写....................13 '8.函数作用:计算某种税金..............................18 '9.函数作用:人民币大、小写转换......
  • str = Microsoft.VisualBasic.Strings.StrConv(range.htmlText, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese); range.pasteHTML(str); ``` ``` 繁转简转换后,发现丢失文字,记录日志发现,str相...
  • Grid1.Range(nActiveRow, nActiveCol + 1, _ nActiveRow, nActiveCol + 1).Selected End If Cancel = True End If End Sub Private Sub Form_Load() form1.BackColor = RGB(168, 217, 189) With Grid1 ....
  • 我们在使用excel的分列将数字转为文本时,用宏记录的vb代码如下: Range("A5:A64").Select Selection.TextToColumns Destination:=Range("A5"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ...
  • 需要添加对VB项目的信任Sub UDFSOFACTIVEWORKBOOK()Dim sh As Worksheet, r As Range, dic As Object, i As Long, temp As String, vbcomp, s() As String, UDF As StringFor i = 1 To ActiveWorkbook.VBProject....
  • 1、2010-01-24 17:07 中国广州天河2、在Word文档中,状态栏中有相关的信息,当我们选择的内容...可以使用Information 函数vb叫属性)获得。3、1程序截图:3、2运行效果13、3运行效果2 转载于:https://www.cnbl...
  • 6.按SplitType取得RangeName串值中的起始位置 7.将金额数字转成中文大写 8.计算某种税金 9.人民币大、小写转换 10.查汉字区位码 11.把公元年转为农历 12.返回指定列数的列标 13.用指定字符替换某字符 14.从右边开始...
  • 我们可以用VB编写自定义函数,然后封装成dll文件,最后在excel中使用该自定义函数,具体步骤如下: 封装可以在工作表中使用的自定义函数和79集一样,只是加载时多了一个步骤 1 创建步骤省略,下面是要封装的自定义...
  • 方式一:通过HYPERLINK()函数 方式二:VBA宏运算 在“视图”中点击“宏” 输入创建宏的名称,点击创建 输入vb代码 Sub text2hyperlink() Dim R As Range For Each R In Selection ActiveSheet.Hyperlinks.Add...
  • 一张数据表格,想在每一行下插入一个空行的简单快捷的方法,那就是编写宏函数: 打开excel的VB编辑窗口新建一个模块,将代码复制,运行即可: Sub addrows() For i = Application.WorksheetFunction.CountA(Range("A...
  • 1.atl+F11弹出vb窗口 2.点击 插入===》模块 ,复制以下代码,注意这是一个表头为三行的函数(保存) Sub 保留表头拆分数据为若干新工作簿() Dim arr, d As Object, k, t, i&, lc%, rng As Range, c% ...
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    26使用Range属性 78 27使用Cells属性 78 28使用Offset属性 79 29选择单元格的其它方法 80 30选择行和列 80 31获取工作表信息 81 32往工作表输入数据 81 33返回工作表中的信息 81 34单元格格式 81 35移动,复制和删除...
  • Excel VBA程序设计.doc

    2009-07-06 22:16:12
    26使用Range属性 78 27使用Cells属性 78 28使用Offset属性 79 29选择单元格的其它方法 80 30选择行和列 80 31获取工作表信息 81 32往工作表输入数据 81 33返回工作表中的信息 81 34单元格格式 81 35移动,复制和删除...
  • 26使用Range属性 67 27使用Cells属性 67 28使用Offset属性 68 29选择单元格的其它方法 69 30选择行和列 69 31获取工作表信息 69 32往工作表输入数据 70 33返回工作表中的信息 70 34单元格格式 70 35移动,复制和删除...
  • Excel_VBA教程

    2014-09-22 11:36:34
    26使用RANGE属性 70 27使用CELLS属性 71 28使用OFFSET属性 71 29选择单元格的其它方法 72 30选择行和列 73 31获取工作表信息 73 32往工作表输入数据 73 33返回工作表中的信息 74 34单元格格式 74 35移动,复制和删除...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    26使用RANGE属性 70 27使用CELLS属性 71 28使用OFFSET属性 71 29选择单元格的其它方法 72 30选择行和列 73 31获取工作表信息 73 32往工作表输入数据 73 33返回工作表中的信息 74 34单元格格式 74 35移动,复制和删除...
  • 对DGVPrint组件,设置PrintRange属性为相应的值即可,而对于VB2008Print组件,请先用CopyDataGridViewSelectedRange函数将要打印的DGV复制到新的DGV,然后再用PrintDGV函数打印这个新DGV即可。 3、增加了大量的绘图...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

range函数vb