周一至周五 : 08:30 - 17:30 客服专员电话/微信:18049989370 QQ:857188287
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
VBA控制输入内容自动调整列宽
显示全部楼层 倒序浏览 发表日期 2017-02-23 22:07:34 3936次阅读 2次回复
bj_zm
2017-2-23 22:07:34
  1. Public Sub RangeChanged(sender As Object,e As SpreadsheetGear.Windows.Forms.RangeChangedEventArgs)
  2. '找个单元格定义个别名ZDQY(非数据项),写上需要自动列宽的字段名F_1,F_2
  3. AW.WorkbookSet.GetLock()
  4. if Range("ZDQY") IsNot Nothing Then
  5. Dim QY As String = Range("ZDQY").Cells(0,0).Value.ToString()
  6. DIM QYS As String() = QY.Split(",")
  7. for i=1 to QYS.Length
  8. Dim ZDM As String = QYS(i-1)
  9. if Range(ZDM) IsNot Nothing Then
  10. if e.Range.Intersect(Range(ZDM)) IsNot Nothing AndAlso e.Range.IsEntireColumns=false Then
  11. AW.ActiveWorksheet.ProtectContents = false
  12. e.Range.EntireColumn.Columns.AutoFit()
  13. AW.ActiveWorksheet.ProtectContents = True
  14. End if
  15. End if
  16. Next
  17. End if
  18. AW.WorkbookSet.ReleaseLock()
  19. End Sub'单元格编辑完成后执行事件
复制代码

QQ:34840397
赞!
KB_VBA_ZDLK.rar (2.77 KB, 下载次数: 20)
电话/微信:18049989370 QQ:857188287
本帖最后由 hessen 于 2020-9-25 17:18 编辑

规则同上适用于企业版7.5.6以上

  1.            ActiveWorkbook.WorkbookSet.GetLock()
  2. '找个单元格定义个别名ZDQY(非数据项),写上需要自动列宽的字段名F_1,F_2
  3.             If Range("ZDQY") IsNot Nothing Then
  4.                 Dim QY As String = Range("ZDQY").Cells(0, 0).Value.ToString()
  5.                 Dim QYS As String() = QY.Split(",")
  6.                            Dim i as Integer
  7.                 For i = 1 To QYS.Length
  8.                     Dim ZDM As String = QYS(i - 1)
  9.                     If Range(ZDM) IsNot Nothing Then
  10.                         If e.Range.Intersect(Range(ZDM)) IsNot Nothing AndAlso e.Range.IsEntireColumns = False Then
  11.                             ActiveWorkbook.ActiveWorksheet.ProtectContents = False
  12.                             e.Range.EntireColumn.Columns.AutoFit()
  13.                             ActiveWorkbook.ActiveWorksheet.ProtectContents = True
  14.                         End If
  15.                     End If
  16.                 Next
  17.             End If
  18.             ActiveWorkbook.WorkbookSet.ReleaseLock()
复制代码



电话/微信:18049989370 QQ:857188287

精彩评论2

赞!
KB_VBA_ZDLK.rar (2.77 KB, 下载次数: 20)
电话/微信:18049989370 QQ:857188287
本帖最后由 hessen 于 2020-9-25 17:18 编辑

规则同上适用于企业版7.5.6以上

  1.            ActiveWorkbook.WorkbookSet.GetLock()
  2. '找个单元格定义个别名ZDQY(非数据项),写上需要自动列宽的字段名F_1,F_2
  3.             If Range("ZDQY") IsNot Nothing Then
  4.                 Dim QY As String = Range("ZDQY").Cells(0, 0).Value.ToString()
  5.                 Dim QYS As String() = QY.Split(",")
  6.                            Dim i as Integer
  7.                 For i = 1 To QYS.Length
  8.                     Dim ZDM As String = QYS(i - 1)
  9.                     If Range(ZDM) IsNot Nothing Then
  10.                         If e.Range.Intersect(Range(ZDM)) IsNot Nothing AndAlso e.Range.IsEntireColumns = False Then
  11.                             ActiveWorkbook.ActiveWorksheet.ProtectContents = False
  12.                             e.Range.EntireColumn.Columns.AutoFit()
  13.                             ActiveWorkbook.ActiveWorksheet.ProtectContents = True
  14.                         End If
  15.                     End If
  16.                 Next
  17.             End If
  18.             ActiveWorkbook.WorkbookSet.ReleaseLock()
复制代码



电话/微信:18049989370 QQ:857188287
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |