ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 779|回复: 3

[求助] 如何判断 listbox 里的 “空列" 并动态将该列"列宽"设置成“0”

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-22 10:16 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如题,模糊录入过程中,listbox显示的是通过按条件筛选的结果,但经常有两三列是无数据的空列,又因 listbox 设置的列数较多,想将 listbox 里的 “空列" 的"列宽"设置成“0”,这样方便查看相关有数据
listbox数据是近下面方式添加的:
        For i = 1 To UBound(xrr)
            If xrr(i, 2) Like "*" & UCase(TextBox1.Text) & "*" Or xrr(i, 3) Like "*" & UCase(TextBox1.Text) & "*" Or xrr(i, 6) Like "*" & UCase(TextBox1.Text) & "*" Then
               .AddItem
               .List(h, 0) = xrr(i, 2)
               ……………
               h = h + 1
            End If
        Next
        ''能否用什么方法判断 listbox 里的 “空列" 并动态将该列的"列宽"设置成“0”,这样方便查看相关有数据
        'If listbox第N列为空 Then
           '将 cw 第N个数据 替换 “0”
           'ListBox1.ColumnWidths = cw     '新的列宽值
        'End If

详见附件: 配件欠料登记表.rar (74.84 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 21:47 | 显示全部楼层
看来只能用每列都作累加,然后再作判断的笨办法了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 23:28 | 显示全部楼层
自己解决:
  1. Private Sub TextBox1_Change()
  2. On Error Resume Next
  3. Dim h, c, i, j, xr, cr, lw
  4. ListBox1.ColumnWidths = cw
  5. cr = Split(cw, ",")
  6. ti = Array("物料编码", "物料名称", "长度/高度", "颜色", "辅助数量", "辅助单位", "计量单位", "数量", "纱网/材质", "规格说明")
  7. With ListBox1
  8.      .Clear
  9.      h = 0
  10.      If tc = 5 Then
  11.         .AddItem
  12.         For c = 0 To 9
  13.             .List(h, c) = ti(c)
  14.         Next
  15.         ReDim xr(0 To 9)
  16.         For i = 1 To UBound(xrr)
  17.             If xrr(i, 2) Like "*" & UCase(TextBox1.Text) & "*" Or xrr(i, 3) Like "*" & UCase(TextBox1.Text) & "*" Or xrr(i, 6) Like "*" & UCase(TextBox1.Text) & "*" Then          ''ListBox1.AddItem xrr(i, 1)
  18.                .AddItem
  19.                h = h + 1
  20.                .List(h, 0) = xrr(i, 2): xr(0) = xr(0) & xrr(i, 2)
  21.                .List(h, 1) = xrr(i, 3): xr(1) = xr(1) & xrr(i, 3)
  22.                .List(h, 2) = xrr(i, 4): xr(2) = xr(2) & xrr(i, 4)
  23.                .List(h, 3) = xrr(i, 6): xr(3) = xr(3) & xrr(i, 6)
  24.                .List(h, 4) = xrr(i, 8): xr(4) = xr(4) & xrr(i, 8)
  25.                .List(h, 5) = xrr(i, 9): xr(5) = xr(5) & xrr(i, 9)
  26.                .List(h, 6) = xrr(i, 14): xr(6) = xr(6) & xrr(i, 14)
  27.                .List(h, 7) = xrr(i, 15): xr(7) = xr(7) & xrr(i, 15)
  28.                .List(h, 8) = xrr(i, 7): xr(8) = xr(8) & xrr(i, 7)
  29.                .List(h, 9) = xrr(i, 10): xr(9) = xr(9) & xrr(i, 10)
  30.             End If
  31.         Next
  32.         For j = 0 To 9
  33.             If xr(j) = "" Then
  34.                cr(j) = "0"
  35.             End If
  36.         Next
  37.         lw = Join(cr, ",")
  38.         ListBox1.ColumnWidths = lw
  39.      End If
  40. End With
  41. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-23 23:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
见附件: 配件欠料登记表.rar (74.76 KB, 下载次数: 15)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-28 17:53 , Processed in 0.079695 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表