VBA怎么自动刷新
VBA中,我要在A行这里录入资料,B:I行就会自动取资料出来?
比如A行,我录ABC12345 b:I,就会自动填A,B,C,1,2,3,4,5
最佳答案
Private Sub Worksheet_Change(ByVal Target As Range)
v = Target.Value
r = Target.Row
c = Target.Column
len1 = Len(v)
Application.EnableEvents = False
For i = 1 To len1
Cells(r, c + i) = Mid(v, i, 1)
Next
Application.EnableEvents = True
End Sub
任意单元格、任意长度字符串,自动在右侧分列成单个的字符。
追答:只要是你主动更改的都会自动更新。
注意:不要随意双击单元格后再回车,这样系统会认为是你在更新单元格内的内容了。不要养成坏习惯。如果不小心双击了不想更改的单元格,按ESC键退出即可。
其他回答
其它网友回答:
你说的是公式的自动重算吧?可以在工具--选项--公式 把手工计算改成自动重算,就不用按F9了VBA中的语句如下:手工计算 With Application .Calculation = xlManual ....
其它网友回答:
你的这个不用VBA的,直接用公式就可以了
其它网友回答:
B1 =MID(A1,1,1)
其它网友回答:
C1 =MID(A1,2,1)
其它网友回答:
D1 = MID(A1,3,1)
其它网友回答:
....
其它网友回答:
当你A写数据时,后面的单元会自动刷新的
追问:
公式我都懂,我是想学VBA这种情况要怎么解决
其它网友回答:
非要用VBA?
其它网友回答:
函数就可以解决,干嘛非要用VBA呢!
其它网友回答:
其它网友回答:
函数法:
其它网友回答:
其它网友回答:
其它网友回答:
B1填公式:
其它网友回答:
=MID($A1,COLUMN(A:A),1)
其它网友回答:
向右、向下填充!
其它网友回答:
其它网友回答:
VBA法:
其它网友回答:
其它网友回答:
其它网友回答:
代码:
其它网友回答:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
其它网友回答:
If Target.Column = 1 Then
其它网友回答:
hs = Target.Row
其它网友回答:
Cells(hs, 2) = Mid(Cells(hs, 1), 1, 1)
其它网友回答:
Cells(hs, 3) = Mid(Cells(hs, 1), 2, 1)
其它网友回答:
Cells(hs, 4) = Mid(Cells(hs, 1), 3, 1)
其它网友回答:
Cells(hs, 5) = Mid(Cells(hs, 1), 4, 1)
其它网友回答:
Cells(hs, 6) = Mid(Cells(hs, 1), 5, 1)
其它网友回答:
Cells(hs, 7) = Mid(Cells(hs, 1), 6, 1)
其它网友回答:
Cells(hs, 8) = Mid(Cells(hs, 1), 7, 1)
其它网友回答:
Cells(hs, 9) = Mid(Cells(hs, 1), 8, 1)
其它网友回答:
End If
其它网友回答:
End Sub
其它网友回答:
追答:
既然你会用VBA,那编辑的方法就不用我再说了吧!
追问:
大神,我在A行输入数据后,光标没有在点回去的话,它就不会自动刷新。这个可以解决的吗?

追答:
我不明白你讲的“光标没有在点回去的话,它就不会自动刷新”是什么意思。 这段VBA代码,利用的是“工作表变更事件响应代码”。 在A列输入完毕并按下回车后,Excel就会检测到“工作表变更”,从而触发“变更事件响应代码”。 如果输入完毕后不按回车键,Excel有可能检测不到“工作表变更”。