ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

************VBA转HTML的工具,以后可以在论坛发彩色代码了*************

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-9-17 23:59 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:其他插件和工具
本帖最后由 liucqa 于 2013-9-18 00:12 编辑

VBA2HTML2_setup.part1.rar (1.2 MB, 下载次数: 94)
VBA2HTML2_setup.part2.rar (826.13 KB, 下载次数: 81)

示例见四楼


作者
http://www.chf-online.de/vba2htm/vba2html.htm


TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-18 00:05 | 显示全部楼层
本帖最后由 liucqa 于 2013-9-18 00:24 编辑

捕获.JPG

2.JPG
德文的,凑合用吧,谁有英文版告诉俺一声,谢谢


使用方法:打开.bas文件(或者按粘贴),勾选行号,点那个Datei9或Text,然后点Exportieren,导出成html,用浏览器打开,复制,论坛发帖,粘贴即可。
如果被防水墙删帖,自己找管理员,俺也没办法



TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-18 00:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
VBA2HTML2_2.6.0.14.rar (434.24 KB, 下载次数: 66)

升级文件

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-18 00:10 | 显示全部楼层
1:    Attribute VB_Name = "Indent"  
2:    Option Explicit  
3:      
4:    'µ±Ç°Ä£¿é×Ô¶¯Ëõ½øµÄ´úÂë         ------------------------------------------  这个工具不支持中文
5:    'http://www.mrexcel.com/forum/excel-questions/666280-problem-smart-indenter.html
6:    'ÂÔÓÐÐÞ¸Ä
7:    Sub test()
8:        Call miApplyIndent  
9:    End Sub

10:     
11:   Sub miApplyIndent()
12:       Dim aCodePane As VBIDE.CodePane  
13:       Dim aStartLine As Long, aEndLine As Long  
14:       Dim aLineNumber As Long, aStartColumn As Long, aEndColumn As Long  
15:       Dim aLine As String, aIndentLevel As Integer, aLineIsAfterUnderscore As Boolean  
16:       Dim aIncThisIndent As Boolean, aDecThisIndent As Boolean  
17:       Dim aIncNextIndent As Boolean, aDecNextIndent As Boolean  
18:         
19:       Set aCodePane = ActiveWorkbook.VBProject.VBE.ActiveCodePane  
20:         
21:       'aCodePane.GetSelection aStartLine, aStartColumn, aEndLine, aEndColumn
22:       aStartLine = 2  
23:       aEndLine = ThisWorkbook.VBProject.VBE.SelectedVBComponent.CodeModule.CountOfLines  
24:       For aLineNumber = aStartLine To aEndLine  
25:           aLine = aCodePane.CodeModule.Lines(aLineNumber, 1)  
26:           Do Until Left(aLine, 1) <> " "  
27:               aCodePane.CodeModule.ReplaceLine aLineNumber, Mid(aLine, 2)  
28:               aLine = aCodePane.CodeModule.Lines(aLineNumber, 1)  
29:           Loop                         'Loop repeats until all spaces/indents removed
30:       Next aLineNumber  
31:         
32:       For aLineNumber = aStartLine To aEndLine  
33:           aLine = aCodePane.CodeModule.Lines(aLineNumber, 1)  
34:           Select Case Left(aLine, IIf(InStr(aLine, " ") = 0, 999, InStr(aLine, " ") - 1))  
35:           Case "Do", "For", "Private", "Select", "Sub", "While", "With", "Function"  
36:               aIncNextIndent = True                  'After certain keywords, indent next line
37:           Case "If"                       'After If, where line ends in Then, indent next line
38:               If Right(aLine, 4) = "Then" Then aIncNextIndent = True  
39:           Case "Loop", "Next", "End"                  'At Loop, Next, End, un-indent this line
40:               aDecThisIndent = True  
41:           Case "Case", "Else", "ElseIf"  
42:               aDecThisIndent = True                                    'Un-indent Case or Else
43:               aIncNextIndent = True                            'Indent line after Case or Else
44:           End Select  
45:            
46:           If Right(aLine, 2) = " _" And Not aLineIsAfterUnderscore Then  
47:               aIncNextIndent = True                              'Indent line after underscore
48:               aLineIsAfterUnderscore = True       'Set a flag to un-indent the line after next
49:           ElseIf Right(aLine, 2) <> " _" And aLineIsAfterUnderscore Then  
50:               aDecNextIndent = True  
51:               aLineIsAfterUnderscore = False  
52:           End If  
53:            
54:           If aIncThisIndent Then aIndentLevel = aIndentLevel + 1: aIncThisIndent = False  
55:           If aDecThisIndent Then aIndentLevel = aIndentLevel - 1: aDecThisIndent = False  
56:           On Error GoTo lIndentError  
57:           aCodePane.CodeModule.ReplaceLine aLineNumber, Space$(aIndentLevel * 4) & aLine  
58:           On Error GoTo 0  
59:           If aIncNextIndent Then aIndentLevel = aIndentLevel + 1: aIncNextIndent = False  
60:           If aDecNextIndent Then aIndentLevel = aIndentLevel - 1: aDecNextIndent = False  
61:       Next aLineNumber  
62:   Exit Sub
63:   lIndentError:  
64:       If aIndentLevel < 0 Then aIndentLevel = 0   'Will not happen unless extra lines selected
65:       Resume Next  
66:   End Sub

TA的精华主题

TA的得分主题

发表于 2013-9-19 15:34 | 显示全部楼层
zldccmx 曾经发过一个很好的工具:http://club.excelhome.net/thread-470541-1-1.html

点评

方版:中秋快乐!  发表于 2013-9-19 20:01

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-19 17:24 | 显示全部楼层
本帖最后由 liucqa 于 2013-9-19 19:36 编辑
chrisfang 发表于 2013-9-19 15:34
zldccmx 曾经发过一个很好的工具:http://club.excelhome.net/thread-470541-1-1.html

这个以前看过,一直没找到,谢谢方版

以前没太注意,刚才看了看代码,发现作者擅长用工作表函数,呵呵

TA的精华主题

TA的得分主题

发表于 2013-9-20 00:08 | 显示全部楼层
我记得有人发过直接在剪贴板操作的,要加颜色标签的代码复制到剪贴板中,运行宏,剪贴板内代码就加好标签了。
自己写一个应该也不麻烦,用人现成的代码解析部分改改就成。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 02:14 , Processed in 0.055571 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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