其二:不知道你的
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = Val(TextBox3.Text)
是否有问题,我vba中,我没见过这种写法,我是基于excel中的vba,当然这个写法在vb中成立
三游宽:建议你把Private Sub UserForm_Activate()改兄磨察掉,基本上问题出在这
写个private sub aa()
写上上面的逻辑
end sub
再用command_click控件执行
有些特殊排序要求,对于EXCEL标准功能是无法解决的。这时就可以用VBA来对应。例如:有一张原始数据表,如陆樱芹图:
根据此原始数据建立了一张分类汇总数据表,如图:
要求是,当明细表数据发生变更时,希望汇总表能自动排序。这样的要求,用手工排序就无法自动了。这样的要求只能依赖于VBA。首先编制一个排序的程序,代码如下:
Sub 排序()
Dim mYsheet As String
Dim arr(1 To 3, 1 To 2)
Dim I, J, K As Integer
Dim M_S1 As String '存放交换地区名
Dim M_S2 As Double '存放交换销售额
mYsheet = "汇总排名"
Sheets(mYsheet).Select
'将数值读取到数组中
For I = 1 To 3
For J = 1 To 2
arr(I, J) = Cells(I + 1, J + 1)
Next J
Next I
'排序
For I = 1 To 2
For J = I + 1 To 3
If arr(I, 2) <arr(J, 2) Then
M_S1 = arr(I, 1)
颂族 M_S2 = arr(I, 2)
arr(I, 1) = arr(J, 1)
arr(I, 2) = arr(J, 2)
arr(J, 1) = M_S1
arr(J, 2) = M_S2
End If
Next J
Next I
'将数组的排序结果存放到单元格中
For I = 1 To 3
Cells((I + 1), 2) = arr(I, 1)
Next I
End Sub
再编制一个单元格内容变更的事件触发程序,代码如下:(注:这个代码要放在原始数据表中)
Private Sub worksheet_change(ByVal target As Range)
If target.Column <= 4 Then
早毕 排序
End If
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)