excel单元格内数字连线,VAB代码如何编写,高手请进。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel单元格内数字连线,VAB代码如何编写,高手请进。相关的知识,希望对你有一定的参考价值。

如图:1、如何将单元格B2到J15区域内数字自动连线,B2到J15区域内数字由公式生成;2、并且使有数字的单元格填充颜色。请老师按我图中数据编写代码。
图的的第十行忘填写数字了,就说区域内每行都会有数字而且只会有一个数字。

Sub 宏1()
    Dim x1!, y1!, x2!, y2!
    Dim i%, ii%, rng1 As Range, rng2 As Range, r%, c%
    x1 = 154.5
    y1 = 21
    x2 = 262.5
    y2 = 48.75
    
    Dim shp As Object
    For Each shp In ActiveSheet.Shapes
        shp.Delete
    Next
    ActiveSheet.Cells.Interior.Pattern = xlNone

    For i = 1 To 20
        For ii = 1 To 11
            If Cells(i, ii) <> "" Then
                Set rng1 = Cells(i, ii)
                x1 = rng1.Left + rng1.Width
                y1 = rng1.Top + rng1.Height / 2
                rng1.Interior.Color = 65535
                GoTo line1
            End If
        Next
    Next
    
line1:
    r = i
    c = ii
    
    For j = 1 To 20
        For jj = 1 To 11
            If Cells(j, jj) <> "" And j <> r And jj <> c Then
                Set rng2 = Cells(j, jj)
                x2 = rng2.Left + rng2.Width
                y2 = rng2.Top + rng2.Height / 2
                rng2.Interior.Color = 65535
                With ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)
                End With
                x1 = x2
                y1 = y2
            End If
        Next
    Next
    
End Sub

追问

您好,首先感谢您的答题,但C11、C12没连接线和黄色底纹,我要的编程效果是区域内第一连接第二行直至区域内有数字的单元格都能与下一行连接,或者说无论我扩大到什么区域都能完成我的要求。谢谢,您再帮我想想。我上面的图第十行少了数字,是我漏填了。

追答

将:If Cells(j, jj) "" And j r And jj c Then
改为:If Cells(j, jj) "" Then

参考技术A Sub 自动连线()
   Dim i%, j%, a, b, r, c
   r = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
   c = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
   With Range(Cells(1, 1), Cells(r, c))
             .ColumnWidth = 5
             .RowHeight = 20
   End With
     For i = 3 To r
       For j = 1 To c
           If Cells(i - 1, j) <> "" Then a = j: Cells(i - 1, j).Interior.Color = 65535
           If Cells(i, j) <> "" Then b = j
           If Cells(r, j) <> "" Then Cells(r, j).Interior.Color = 65535
         If a <> "" And b <> "" Then
           ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 33.7 * a - 16, 19.5 * i - 30, 33.7 * b - 16, 19.5 * i - 10).Select
             a = ""
             b = ""
         End If
       Next j
    Next i
End Sub

追问

不知道为什么连线效果是这样的。

追答

你是什么系统,exceI中单位设置是否为默认?

你的工作表内不能有别的字符,包括在单元格键入空格符,否则就要自定义一个识别区域,而不能自动检测。

追问

怎么默认设置,我的系统是XP,我的工作表里没有其他字符,但我这个工作表里要添加数字的。

追答

如果工作表内有其它的内容,那就看看你要连线的区域的行号与列号是几到几(比如为行号a~b,列号c~d),然后改for i = a+1 to b,for j = c to d

to前后是算出来的数字

参考技术B 不知道,不懂

excel两个单元格内容合并不了怎么办?

    一、首先我们介绍一下最简单的方法——使用&连接符。

    如果需要合并的字符串不多,它也是最好用的。

    2

    将 A2 和 B2 单元格的内容合并起来放在 C2 单元格,字符串中间用空格作为分隔。

    语法

    字符串 1&字符串 2&……

    公式

    =A2&" "&B2

    &的功能就是将前后两个单元格的内容以文本形式合并起来。如果单元格的内容是特殊格式的数字,如日期、百分比数字等,建议先用 TEXT 函数强制转化为文本再进行合并。

    请点击输入图片描述

    3

    优点

    公式容易理解,并可根据需要,字符串中间加入任意的分隔符,如空格、横杠-、顿号、等。

    缺点

    单元格或者字符串个数较多时,书写公式的时候需要逐个增加字符串或者单元格引用,是个体力活。另外,当引用单元格包含错误值时会返回错误值。

    4

    二、CONCATENAT 函数法。

    5

    将 A2 和 B2 单元格的内容合并起来放在 C2 单元格,字符串中间用空格作为分隔。

    语法

    CONCATENATE(字符串 1,[字符串 2],……,[字符串 255])

    公式

    =CONCATENATE(A2," ",B2)

    CONCATENATE 函数的功能是将两个或多个文本字符串合并为一个字符串。

    请点击输入图片描述

    6

    优点

    公式容易理解,可以合并多达 255 个字符串,需要分隔符的时候可以隔一个参数设置一个分隔符。

    缺点

    需要逐个增加字符串或单元格引用,单元格或者字符串个数较多时,也是个体力活。

    与&相同,在引用单元格包含错误值时会返回错误值;在引用相同字符串的情况下,CONCATENATE 返回的结果与使用&连接符返回的结果相同。

    7

    三、PHONETIC 函数法

    8

    将 A2:B2 单元格区域的内容合并起来放在 C2 单元格。

    语法

    PHONETIC(引用区域),参数「引用区域」是必须输入的,且只能是一个区域。

    公式

    =PHONETIC(A2:B2)

    PHONETIC 函数将参数引用的区域内的字符串合并起来,但只可以对单个的区域进行合并,以先行后列的方式生成新的字符串,中间无法设置分隔符号,当引用单元格区域包含错误值#N/A 时,会视该错误值为字符串进行合并。

    优点

    可对单个区域的字符串进行合并,不再需要逐个单元格引用,方便快捷;PHONETIC 会自动忽略除#N/A 之外的错误值。

    缺点

    PHONETIC 函数会自动忽略数值、逻辑值;当单元格内容为公式结果时,PHONETIC 也不能返回正确的结果;另外无法设置分隔符号。

    请点击输入图片描述

    9

    四、CONCAT 函数法

    10

    语法

    CONCAT(字符串 1,[字符串 2],……,[字符串 254])

    公式

    =CONCAT(A2:B2,D2:E2)

    CONCAT 函数可以合并多个单元格区域、字符串或字符串数组,不过各字符串之间不能设置分隔符号。

    请点击输入图片描述

    11

    优点

    可合并的区域可以多达 254 个,基本满足日常的需求,并且可以整行或整列引用。

    缺点

    Office365 及以上版本可用;不提供分隔符功能;如果结果字符串超过 32767 个字符(单元格限制),返回 #VALUE!错误。

    12

    五、TEXTJOIN 函数法

    13

    将 A2:B2 和 D2:E2 两个单元格区域的字符串合并,结果放在 C2 单元格,各字符串中间用空格分开,并且忽略空单元格。

    语法

    TEXTJOIN(分隔符,是否忽略空白单元格,字符串 1,[字符串 2],……,[字符串 252])

    分隔符:每个字符串之间的分隔,需用英文状态的双引号引起来。

    是否忽略空白单元格:TRUE(忽略空白单元格);FALSE(反之)。

    公式

    =TEXTJOIN(" ",TRUE,A3:B3,D3:E3)

    TEXTJOIN 函数可以合并多个单元格区域、字符串或字符串数组,可以设置固定的分隔符号,还可以设置是否忽略空单元格。

    请点击输入图片描述

    14

    优点

    可合并的区域可以多达 252 个,可以设置字符串中间的分隔符,并可以设置是否忽略空格,是迄今为止字符串合并函数中功能最强函数。

    缺点

    OFFICE365 及以上版本可用;结果字符串超过 32767 个字符 (单元格限制),则 TEXTJOIN 返回 【 #VALUE!】 错误。

    END

    借用 Word 合并字符串

    1

    将 A2:D2 单元格区域的内容合并起来放在 E2 单元格,各字符串中间用空格分开。

    请点击输入图片描述

    2

    Step 1

    复制要合并的 A2:D6 区域,粘贴到空白 Word 文档中,选择【只保留文本】选项,如下图所示:

    请点击输入图片描述

    3

    Step 2

    按下【Ctrl+H】快捷键打开替换窗口,查找内容输入^t,替换内容输入一个空格,单击【全部替换】,如下图所示:

    请点击输入图片描述

    4

    Step 3

    按下【Ctrl+A】快捷键选中全部文字,【Ctrl+C】复制,然后转换到 Excel 窗口,选中 E2 单元格,粘贴的时候选择【匹配目标格式】,如下图所示:

    请点击输入图片描述

    5

    完成效果:

    请点击输入图片描述

    6

    优点

    操作简单,可生成多行字符串,字符串之间的分隔符可以在替换的时候选择使用空格、逗号、顿号等。

    缺点

    只能合并多列字符串,不能进行无固定行数的多行字符串合并。

    END

    内容重排

    1

    将 12 行字符串按每 4 行合并成一个字符串,共生成 3 个字符串。

    请点击输入图片描述

    2

    Step 1

    将要合并的字符串放置在同一列中,并将列宽设置为可以单行排列所有字符的宽度,本例中设置列宽为 20 即可。

    3

    Step 2

    因为要合并成多行字符串,所以要将每个结尾字符串 Excel、Word 的下方插入一行空行,PPT 因为下方行为空行,无需再次添加空行,如下图所示:

    请点击输入图片描述

    4

    Step 3

    单击【开始】选项卡,找到编辑命令组,单击【填充】命令右侧的倒三角,在弹出的列表中单击【内容重排】,如下图所示:

    请点击输入图片描述

    5

    优点

    操作简单,可生成多行字符串,半角字符合并后中间使用空格分隔,全角字符合并后无分隔符。

    缺点

    只能合并多行字符串,不能进行多列合并,受列宽 255 限制,不能合并超过列宽的字符串。

    END

    Ctrl+E

    1

    将 A2:D2 单元格区域的字符串合并,结果放在 E2 单元格,各字符串中间用短横线-分开。

    请点击输入图片描述

    2

    Step 1

    选中 E2 单元格,按合并顺序手工输入字符串及分隔符号「小-E-你-好」,输入完毕后回车跳转到 E3 单元格,如下图所示:

    请点击输入图片描述

    3

    Step 2

    直接按快捷键【Ctrl+E】,瞬间自动完成下面所有行的字符串合并,并且分隔符与 E2 单元格一致,如下图所示:

    请点击输入图片描述

    4

    优点

    这个快捷键功能太强大了,简直被吹上天了,不仅能合并,还能拆分,提取数字等等!

    缺点

    Office 2013 及以上版本可用。

    END

    总结

    1.合并字符串讫今为止最强大的函数还是 TEXTJOIN,既能设置分隔符号,还可以设置是否忽略空单元格,但是需要 Office365 版本支持。

    2.如果你的 Office 版本在 2013 以上,可以考虑使用强大的 Ctrl+E 功能来合并。

    3.如果版本较低或使用 WPS 的同学,合并的字符串较少时,最方便的方法还是使用&连接符。

    4.内容重排和借用 Word 来合并字符串两种方法也各有利弊。

参考技术A 平时处理表格时,难免会用到合并单元格,不可否认,单元格合并对表格的美观起到了一定的作用。但同时也有不少人怵于合并单元格的应用,因为在后期数据处理时,会带来不少麻烦,比如序号编制、数据求和、计数以及排序和筛选等问题。

今天整理了使用合并单元格常见的一些问题及相应的解决办法,需要的童鞋赶紧收藏备用!
1、合并单元格连续性序号填充
合并单元格之后,连续性序号的填充是很多人头疼的问题。我们可以利用COUNT这个函数来解决这个问题,也可以用MAX这个极值函数,如下动图所示,输入公式:
=COUNT(A$1:A1)+1 或者 =MAX(A$1:A11)+1,按Ctrl+Enter组合键批量填充。
2、合并单元格计数
合并单元格计数,我们用到的是COUNTA和SUM相结合的函数公式,如下动图所示,输入公式:
=COUNTA(C12:C$14)-SUM(E13:E$14),按Ctrl+Enter组合键批量填充。
3、合并单元格求和
和上个例子类似原理,统计合并单元格的数据之和,输入公式:
=SUM(D2:D$14)-SUM(F3:F$14),按Ctrl+Enter组合键批量填充。
4、合并单元格排序
如何保持合并单元格格式及内容不变,对数据进行内部升序排列呢?
这里我们先增加辅助列,输入公式:=COUNTA($A$2:A2)*10^4+C2,下拉填充公式,选中B列到D列数据,点击数据选项卡下的排序,根据辅助类的单元格值进行升序排列,最后删除辅助列即可。
5、合并单元格筛选
我们在表格中对合并单元格进行筛选操作,会发现筛选出来的数据不全,如下动图所示:
如何才能实现合并单元格的正常数据筛选效果呢?
首先我们把合并单元格区域复制到表格外空白处,取消所有合并单元格,按Ctrl+G条件定位空值,输入公式:=A2,按Ctrl+Enter组合键批量填充,然后用格式刷把刚才空白处的合并单元格格式复制到A列,这样我们再进行数据筛选就可以了。
参考技术B 先将后面或下面单元格内容复制,再合并。因为合并后只保留了最上面或前面一格的内容,所在还需将后面一格内容粘贴上! 参考技术C 这两个怎么可能合并不了,你这个是用的电脑还是手机手机软件,你两个合并的话同时选两个,把两个单元格选中之后,然后你右键一下右键就可以合并。。 参考技术D 很多脑瘤患者对生活失去信心,整天在那里自暴自弃,在这里,专家告诉大家,患上脑瘤也不要对生活绝望,并且应该更加注意脑瘤的饮食保健工作,那么脑瘤如何食补比较好?下面我们就来了解一下。

脑瘤如何食补比较好?
我们知道,中医重视食疗,中医的食疗食养,不单着眼于食物的营养,还着眼于食物的性味、归经、功用。在中医看来,所有的食物都是功能食品,都有医疗价值。以下例举的脑瘤食疗方,经中医临床检验,证明是十分有效的,脑瘤患者不妨一试。

1、脑瘤食疗之脑髓“韭菜合子(或包子)”
[原料]猪脑(牛、羊、狗、兔脑亦可)1个,韭菜量为猪脑的4倍。 [制法]猪脑等蒸熟后切成小丁,韭菜洗净切末,加油盐适量,拌匀成馅,用白面包成合子烙熟食之,或发面蒸包子食用。
[功能]补肾益精,养血润燥,补脑填髓。适用于精血亏损,虚劳神疲的神经组织恶性肿瘤及淋巴性、骨髓性白血病患者。

2、脑瘤食疗之“蒜苗肉包子”
[原料]蒜苗8份,瘦肉2份。
[制法]将蒜苗和猪肉按8:2制成馅,调味,做包子,蒸熟。
[功能]补肾养血,润燥行气,解毒杀虫。适用于一切恶性肿瘤,白血病,成骨肉瘤等患者。

说起脑瘤很多朋友都极为害怕,因为脑瘤让很多患者及其家属备受煎熬,严重威胁着人们的身体健康。专家说,只有我们了解了脑肿瘤病因,我们才能更好的预防和治疗。

以上是关于excel单元格内数字连线,VAB代码如何编写,高手请进。的主要内容,如果未能解决你的问题,请参考以下文章

如何把excel同一个单元格内的文字和数字分别提取出来?

excel vab 保护

EXCEL单元格内的回车键如何批量消除

excel两个单元格内容合并不了怎么办?

请教!excel单元格内的数值发生变化时如何保留它以前的值

Excel UDF - 对单元格内用逗号分隔的数字和文本进行排序