VBA excel 宏 请教下,这个代码错在哪了

如题Suba()Dima,b,iForH=1To12IfInStr(Cells(i,1),"[")>0ThenDimM(),N()i=0b=0a=Cells(i,1)Do... 如题

Sub a()
Dim a, b, i
For H = 1 To 12
If InStr(Cells(i, 1), "[") > 0 Then
Dim M(), N()
i = 0
b = 0
a = Cells(i, 1)
Do While InStr(a, "[") <> 0
ReDim Preserve M(i + 1)
ReDim Preserve N(i + 1)
M(i) = InStr(a, "[") + b
N(i) = InStr(a, "]") + b
a = Mid(a, N(i) + 1)
b = Len(Cells(i, 1)) - Len(a)
i = i + 1
Loop
For J = 0 To UBound(M)
With Cells(a, b).Characters(M(J) + 1, N(J) - M(J) - 1).Font
.Color = -16776961
.Size = 16
End With
Next
End If
Next
End Sub
展开
 我来答
tangqinghua520
2012-12-25 · TA获得超过192个赞
知道小有建树答主
回答量:157
采纳率:100%
帮助的人:74.4万
展开全部
代码写得太混乱了,到处都是错或者不正规的写法。
声明变量最好声明类型,不然全部是Variant了
Cells(i, 1).value
H是什么,看意思应该是i
定义数组如果没使用Option Base 1的话,数组起始下标是0
Next后面,最好写完整,Next i, Next j,提高代码可读性。
算法部分懒得看了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式