精华内容
下载资源
问答
  • 如果我们选中了单元格里的部分内容,想在选中内容的前后分别插入不同的字符,这个用VBA怎么做呢?这个直接在Excel单元格中操作是没有办法实现的,或者说实现难度非常之大。我们可以换个思路,把单元格内容体现在...

    我们都知道Excel单元格中可以存储各种文字内容。

    如果我们选中了单元格里的部分内容,想在选中内容的前后分别插入不同的字符,这个用VBA怎么做呢?

    这个直接在Excel单元格中操作是没有办法实现的,或者说实现难度非常之大。

    我们可以换个思路,把单元格的内容体现在窗体文本框中,通过文本框来选择要操作的部分内容。

    如下图所示

    在文本框中选择要添加的部分内容,然后选择要添加的XML标签,单击”开始添加”即可在选中的文本内容前后添加要添加的文本内容,最后将添加后的文本返回到单元格中。

    这里需要了解的是在文本框控件中,可以使用SelStart属性返回选中的文本内容的起始位置,SelLength属性返回选中的文本内容的字符长度,SelText 属性返回选中的文本内容。

    核心代码如下:

    Visual Basic

    Private Sub CmdOK_Click()

    With UserForm1

    sText = .TextBox1.Text

    sTag = .ComboBox1.Text

    If Len(sText) > 0 Then

    iStart = .TextBox1.SelStart

    If iStart = 0 Then iStart = 1

    sSText = .TextBox1.SelText

    sNText = "" & sSText & "" & sTag & ">"

    sText = Left(sText, iStart - 1) & VBA.Replace(sText, sSText, sNText, iStart, 1)

    .TextBox1.Text = sText

    Excel.ActiveCell = sText

    End If

    End With

    End Sub

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    PrivateSubCmdOK_Click()

    WithUserForm1

    sText=.TextBox1.Text

    sTag=.ComboBox1.Text

    IfLen(sText)>0Then

    iStart=.TextBox1.SelStart

    IfiStart=0TheniStart=1

    sSText=.TextBox1.SelText

    sNText=""&sSText&""&sTag&">"

    sText=Left(sText,iStart-1)&VBA.Replace(sText,sSText,sNText,iStart,1)

    .TextBox1.Text=sText

    Excel.ActiveCell=sText

    EndIf

    EndWith

    EndSub

    通过上述代码,就可以随心所意的选择要修改的部分文本内容,然后在其前后添加文本内容。

    怎么样?今天介绍的思路你学会了吗?

    展开全文
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:NO. 168:如何利用VBA代码,求单元格区域A1:H10正数的和NO....

    839fc1cd1d6c66d58027a4269bb76303.png

    分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:

    NO. 168:如何利用VBA代码,求单元格区域A1:H10正数的和

    NO. 169:如何利用VBA代码,求最大值、最小值

    f3044dd9fea06e5c662153751b41f9f7.png

    VBA过程代码168:如何利用VBA代码,求单元格区域A1:H10正数的和

    Sub mynz ()

    Dim rng, rngs As Range

    Dim d As Double

    Set rngs = Range("A1:H10")

    For Each rng In rngs

    If rng > 0 Then d = d + rng

    Next

    MsgBox rngs.Address(0, 0) & "单元格正数的和为" & d

    End Sub

    代码的解析说明:mynz过程利用VBA代码在单元格区域Range("A1:H10")中进行了遍历的操作,If rng > 0 Then d = d + rng 是指当这个单元格的值大于零时,那么累加求和。即是求正数的和。

    b00c018e83f2a12ea644b459d7005f1a.png

    VBA过程代码169:如何利用VBA代码,求最大值、最小值

    Sub mynz ()

    Dim rng As Range

    Dim myRng As Range

    Dim k1 As Integer, k2 As Integer

    Dim mymax As Double, mymin As Double

    Set myRng = Sheets("50").Range("a1:f20")

    For Each rng In myRng

    If rng.Value = WorksheetFunction.Max(myRng) Then

    rng.Interior.ColorIndex = 3

    k1 = k1 + 1

    mymax = rng.Value

    ElseIf rng.Value = WorksheetFunction.Min(myRng) Then

    rng.Interior.ColorIndex = 5

    k2 = k2 + 1

    mymin = rng.Value

    Else

    rng.Interior.ColorIndex = 0

    End If

    Next

    MsgBox "最大值是:" & mymax & "共有 " & k1 & "个" _

    & Chr(13) & "最小值是:" & mymin & "共有 " & k2 & "个"

    End Sub

    代码的解析说明:mynz过程在工作表单元格区域中查找最大、最小值,并将其所在的单元格底色分别设置为红色和蓝色。代码中遍历单元格区域,使用工作表Max、Min函数判断单元格数值是否是所在区域的最大、最小值,如果是,将其所在的单元格底色设置为红色或蓝色,并保存其数值和数量。最后用消息框显示最大、最小值数值和数量。

    ec3c5c363d2504cb8866601bfefa6c44.png

    VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第二册的95讲。

    展开全文
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.159-NO.161内容是:NO. 159:用InputBox方法获得所选单元格区域地址NO. 160:...

    9510a780cd29d14b840f1698b6cd877f.png

    分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.159-NO.161内容是:

    NO. 159:用InputBox方法获得所选单元格区域地址

    NO. 160:VBA中调用内置对话框,完成人机对话的方案

    NO. 161:利用VBA代码,如何删除指定的文件

    06209975d1b86e4a6a542d390efd4671.png

    VBA过程代码159:用InputBox方法获得所选单元格区域地址

    Sub mynz ()

    Dim rng As Range

    Sheets("42").Select

    On Error GoTo 100

    Set rng = Application.InputBox("请使用鼠标选择单元格区域:", Type:=8)

    rng.Interior.ColorIndex = 6

    100:

    End Sub

    代码的解析说明:mynz过程使用InputBox方法显示一个对话框,提示用户在工作表中选择一个单元格区域,并改变所选单元格区域内部的颜色。运行过程,将显示一个对话框,提示用户在工作表中选择一个单元格区域,并用Interior.ColorIndex改变所选单元格区域内部的颜色。Interior.ColorIndex方法用到的颜色代码在我之前的文章中详细的介绍过,有兴趣的朋友可以回头看看。

    8794739d480c40f11f723bc85f24ca1a.png

    VBA过程代码160:VBA中调用内置对话框,完成人机对话的方案

    Sub mynz ()

    Application.Dialogs(xlDialogOpen).Show

    End Sub

    代码的解析说明:mynz过程显示内置的“打开”对话框并选定示例所在的文件夹。

    -----------------------------------------------------------------------------------------------

    f400f16ddfb72fdf0108172692a9a087.png

    VBA过程代码161:利用VBA代码,如何删除指定的文件

    Sub mynz ()

    Dim Filename As Variant

    Dim mymsg As Integer

    Dim i As Integer

    Filename = Application.GetOpenFilename(Title:="删除文件", MultiSelect:=True)

    If IsArray(Filename) Then

    mymsg = MsgBox("是否删除你所选文件?", vbYesNo, "提示")

    If mymsg = vbYes Then

    For i = 1 To UBound(Filename)

    Kill Filename(i)

    Next

    End If

    End If

    End Sub

    代码的解析说明:mynz过程使用GetOpenFilename方法显示标准的内置“打开”对话框,获取用户选定文件的文件名后使用Kill语句删除。运行mynz过程,显示标准的内置“打开”对话框,删除用户选定的文件.

    VBA实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第二册的92讲。

    展开全文
  • 有朋友问:能不能批量将单元格中的部分字符改变格式,比如改变字体,字号,改变颜色……举个例子,如下图所示,将“领导”两个字……字体变成15号,红色加粗……干了这碗毒鸡汤,天黑就闭眼……代码如下:Sub ...
    有朋友问:能不能批量将单元格中的部分字符改变格式,比如改变字体,字号,改变颜色……举个例子,如下图所示,将“领导”两个字……字体变成15号,红色加粗……b3180ab6b6feb7fbe66f1e0ec3c98b9a.png干了这碗毒鸡汤,天黑就闭眼……20fae66f0d6c97933da0f4c55c783e19.png代码如下:
    Sub MyCharacters()    
        Dim arr, s$, i&, l&, n&
        s = "领导"
    '需要改变格式的字符串
        n = Len(s)
    '变量s的长度
        arr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
        For i = 1 To UBound(arr)
            l = InStr(1, arr(i, 1), s, vbTextCompare)
    '查找变量s在arr(i,1)中首次出现的位置,不区分字母大小写
            Do While l '如果l不为0,也就是存在s的话那么……

                With Cells(i, 1).Characters(l, n).Font
                     .Size = 15 '15号字体
                     .FontStyle = "加粗"
                     .Color = -16776961 '红色
                End With
                l = InStr(l + n, arr(i, 1), s, vbTextCompare)
      '寻找变量s下一个出现的位置
            Loop
        Next
        MsgBox "处理完毕!"
    End Sub

    小贴士:1,代码使用了characters对象。其语法是Characters(start, length),其中 start 为起始字符号,而 length 为要返回的字符个数。2,代码使用了instr函数查找指定字符在字符串中最先出现的位置,其语法是InStr([start],string1, string2, [compare])。start是可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数,例如本例小代码。string1是必要参数。接受搜索的字符串表达式。string2是必要参数。被搜索的字符串表达式。Compare可选参数。指定字符串比较。简单理解,如果省略则区分字母大小写,如果指定参数为vbTextCompare则忽略字母大小写。3,坦白的说,Excel 和VBA处理这类问题的效率并不高,即便搭配正则,效率同样还是不高。处理这类问题最高效的方法是——找隔壁老王Word呀,它才是文档排版的绝顶高手——图文制作:看见星光
    展开全文
  • 利用批注,我们可以为单元格添加备注信息(如解释、说明),方便表格阅读者了解数据背后的信息。然而,由于不当的使用习惯,我们也经常碰到一些表格,制表人将极其复杂的备注信息写入到批注而非单元格中,导致后期想...
  • 大家好,我们今日继续讲解VBA代码解决方案的第49讲内容(注:在整理之前的VBA系列文章中合并了一些文章,重新成集排序为第49讲,所以从这篇文章开始以新的排序计算):VBA中SUM函数的利用方法。对多个单元格求和,是...
  • 大家好,今日讲解VBA代码解决方案的第51讲:利用VBA代码,如何限制重复值的录入,为什么要提出这个问题呢?因为在工作表中录入数据时,有时希望能限制重复值的录入,比如在示例的A列单元格只能录入唯一的人员编号,...
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,第NO.121-NO.123则,内容是:在如何利用VBA单元格中录入公式、如何利用VBA检查单元格中是否含有公式、如何利用VBA检查单元格中错误等内容。...
  • 相信在很多的时候,你辛辛苦苦...关闭屏幕刷新功能当你写的代码其中有改变工作表的显示内容或格式时,因为这个时候随着程序的执行,电脑的屏幕需要不断改变内容的显示,就是不停止的执行刷新页面,那么在这个时候关...
  • 我以前写过一篇九九乘法表的文章,那时候是用函数公式做的,有兴趣的同学可以回顾下:九九乘法表今天我们用VBA来做个九九乘法表:这感觉好酸爽吧!?VBA代码如下:Sub 九九乘法表()Dim num1%Dim num2%For num1 = 1 To...
  • 使用vba在word中处理表格时,有时要判断这一行表格是否为空白,无内容,以便中止或者跳过读取数据,编辑内容。 可以使用Table对象的Rows属性返回具体的行,然后判断第一个单元格内容.再做下一步操作. 在word中,空白...
  • 运行后就会弹出个警告框,提示用户输入内容,输入后就会在A1单元格显示了,但是也存在一个问题,就是取消后呢,原来在A1单元格内容就会被清空。 所以改良一下,也把“输入数字这个功能再完善一下”。 Sub ...
  • No.1本节内容有两个重点,一个是数组,一个是公式。首先要了解一下所谓的数组是什么,公式又代表什么。Excel中数组是存储于单元格内的数据,以一定的方式表示有一定特征的一组数组。那么如何把Excel中的单元里的数据...
  • 前言:最近在做一个地址标准化的竞赛,里面包括了地址提取、分词、清洗、匹配等一...如上图所示,我想要的结果就是根据C列,判断B列里是否有一样的内容,如果有的话就用红色标记,使用VBA很简单,不过也查了蛮多资料
  • 诸君好,我们今天分享的VBA小代码内容是批量合并相同值的单列单元格。照例举个例子,如下图所示,A列是班级字段,需要将相同的班级单元格修改为合并单元格……代码如下:Sub MergeRange() 'EH技术论坛:VBA编程学习...
  • vba 判断是否为数字

    千次阅读 2016-06-13 17:59:00
    2.判断单元格内容 Dim line1 as single Dim line2 as single If Cells(2,2).Value = "" Then  line1 = 0 Else  if Not IsNumeric(Cells(2, 2).Text) Then  MsgBox "Input Data Error!" ...
  • 分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些... 177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域VBA过程代码176:使用自定义MyExi...
  • 分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些... 177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域VBA过程代码176:使用自定义MyExi...
  • 分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些... 177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域VBA过程代码176:使用自定义MyExi...
  • 1 要解决的问题:删除某列中的空单元格/空行暂时只实现了删除一列中的空行,并没有实现多行的判断空行和删除方法。----之后再做更复杂的1.1 需求分析用VBA删除如下内容,解决思路都不同删除1列的空行(本文要做的)...
  • 目录 Range的Merge方法合并单元格 ... 可以使用循环结构,不断判断是否与之前的部门相同,若相同,则利用Union方法将其添加至所需合并的单元格区域的并集中来。若不相同,则先用Merge将之前的单元格进行合并,...
  • 1 要解决的问题:删除某列中的空单元格/空行暂时只实现了删除一列中的空行,并没有实现多行的判断空行和删除方法。----之后再做更复杂的1.1 需求分析用VBA删除如下内容,解决思路都不同删除1列的空行(本文要做的)...
  • 大家好,我们今日继续讲解VBA代码解决方案的第55讲内容VBA代码中,如何判断是否为数值。...对了,是ISNUMBER()函数,这个函数在EXCEL中可以判断单元格是否为数值,或者判断数组的值,但是在VBA...
  • 如何使用VBA实现excel内容处理一、sheet页内内容处理1、获取总行数和总列数2、查找关键字所在列3、查找不到关键字的反馈处理4、判断列中是否存在合并单元格5、判断列中是否存在空单元格6、判断列中是否存在重复...
  • VBA删除如下内容,解决思路都不同 删除1列的空行(本文要做的) 删除整个区域内的空行 删除整个区域内的空格(这个一般很少有这种需求,用处不大----可用currentregion .specialcells()解决) 下...
  • 大家好,我们今日继续讲解VBA代码解决方案的第55讲内容VBA代码中,如何判断是否为数值。...对了,是ISNUMBER()函数,这个函数在EXCEL中可以判断单元格是否为数值,或者判断数组的值,但是在VBA...
  • 大家好,我们今日继续讲解VBA代码解决方案的第57讲内容判断工作表是否为空表。在实际的工作中,我们要常常判断某个工作表是否为空的,那么在VBA中是如何能做到这一点呢?VBA中没有专门的属性或函数可以判断工作表...
  • No.2上图为例,把表格内容作为数组值进行保存,然后通过流程编码对成绩进行一个比较判断,最终得出一个成绩等级的判定。也就是通过成绩的多少来确定一个等级区间。同样的判断在不同的表格里应用也比较多。如一个销售...
  • 分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些... 177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域VBA过程代码176:使用自定义MyExi...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

vba判断单元格内容