Do while语句问题

于佳祺Cyril 2018-05-28 12:57:43

Sub 生成表格()

Dim i As Integer
i = 1

Do While Cells("5i-4", "A").Value <> ""
Cells(i, "E").Value = Cells("5i-4", "A").Value
Cells(i, "F").Value = Cells("5i-4", "C").Value
Cells(i, "G").Value = Cells("5i-3", "C").Value
Cells(i, "H").Value = Cells("5i-2", "C").Value
Cells(i, "I").Value = Cells("5i-1", "C").Value
Cells(i, "J").Value = Cells("5i", "C").Value
i = i + 1

Loop
End Sub




VBA初学者,在转变表格的样式的时候遇到了问题。上面的宏在执行的时候显示类型不匹配,把cells后面的“.value”删掉也不能运行。求问问题大概出来哪里?

谢谢!




-
...全文
1328 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2018-05-30
  • 打赏
  • 举报
回复
引用 5 楼 shw014 的回复:
Cells("5i-4", "A").Value
改成
Cells(5*i-4, "A").Value
+1 计算机语言的表达式中,“乘号”是不能象“数学公式”中那样省略的。 Cells( )的 ColumnIndex参数,我写代码都是用的“数值”参数。 如果用字母参数,在“内部”肯定还得转换的。不过好处是“容易阅读”。
shw014 2018-05-30
  • 打赏
  • 举报
回复
Cells("5i-4", "A").Value
改成
Cells(5*i-4, "A").Value
脆皮大雪糕 2018-05-28
  • 打赏
  • 举报
回复
宁愿再发一帖问一下,花时间等待确定的答案,也不试一下把引号去掉然后跑一跑看是不是搞定了。
舉杯邀明月 2018-05-28
  • 打赏
  • 举报
回复
肯定要把那对双引号去掉,才是一个“表达式”啊,这样才能计算“与 i 的函数关系”。 Cells( ) 的第1个参数是“行号”,需要“数值”的。
于佳祺Cyril 2018-05-28
  • 打赏
  • 举报
回复
引用 1 楼 of123 的回复:
"5i-4" 是一个字符串常量。
是应该把引号去掉吗?
of123 2018-05-28
  • 打赏
  • 举报
回复
"5i-4" 是一个字符串常量。

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧