小白请教各位大神VBA这段代码应该怎么修改?

小白请教各位大神VBA这段代码应该怎么修改?,第1张

循环有问题。如图红色部分:

1,m是循环变量,不要在循环体内用其他计算方法去改变它,很容易出错。应该另外设立一个变量,比如k

2,h1是循环终值,随着行数增加,这个终值应该增加

3,变量k在小循环后也应该自增一次,才能切换到大循环。

另外,如图蓝色部分,不用每次开关一次数据库,会给数据库带来很大压力。

包括dim声明变量也不用在循环体内反复申明。

按蓝色内容把语句移一下位置。

我不妨给你举一个标准的例子:

Sub test()

start_row = 2

end_row = 11

current_row = start_row

For i = start_row To end_row

  For j = 1 To 3

      current_row = current_row + 1

      Rows(current_row).Insert xlUp

      end_row = end_row + 1

  Next

  current_row = current_row + 1

Next

End Sub

Private iRiQi As Integer, iStr As String

Private Sub CommandButton1_Click()

iRiQi = Application.InputBox("输入日期修正值:", "日期修正值", 0, Type:=1)

iStr = Application.InputBox("输入日期修正值:", "日期修正值", "A", Type:=2)

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count = 1 And Target.Column = 5 And Target.Row >1 Then

Target.Offset(0, 1) = Date + iRiQi

Target.Offset(0, 2) = IIf(iStr = "", "A", iStr)

End If

End Sub

可以用这个转码网站试一下,C#代码和VB代码互转,但是个别地方肯定还是需要微调的,毕竟

不是同一个语言。

http://www.developerfusion.com/tools/convert/vb-to-csharp/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12062311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存