试着了解如何继续。我让最终用户向我提供需要在Excel中的多个列中进行验证的信息。
由于传入的数据很可能是从源电子表格中复制和粘贴的,因此使用数据验证将很困难。
为了保持验证的正确性,我在一个名为“规则”的表格中镜像了我的数据布局,并输入了我想用于列的公式。
例如:在单元格A2中,我有以下内容: = NOT(AND(LEN(A2)的51,= IF(A2<> “中”,SUMPRODUCT(LEN(A2)-LEN(SUBSTITUTE(LOWER(A2),验证$ A $ 2:$ A $ 41” “)))= LEN(A2)))) 对于A列中除A1之外的所有单元格,将继续进行数据验证。
单元格B2将在其中具有相应的公式,依此类推,直到列BY。
我以下代码粗略估计了sigle列的情况,没有从单元格值中获取条件公式:
tvResult.setText(nodecimals((((Float.parseFloat(etBarfles.getText().toString()) *
(Float.parseFloat(etInhoudfles.getText().toString())) / (Float.parseFloat
(etLitersperminuut.getText().toString()))) / 60))));
我的理想终点是让这个工作,其中A2-A60000的条件格式规则/公式在工作表“规则”单元格“A2”中被执行,而B2-B60000的格式规则/公式位于工作表“规则”中“Cell”B2“&等等,直到Column BY。
提前感谢您的光临!
添
答案 0 :(得分:0)
解决方案非常简单。您已完成90%的流程。只需在没有=或其他任何东西的情况下在单元格A2和B2中定义公式(参见示例)。
以下是您改进的代码:
Sub repaint()
Dim ws As Worksheet, wsRules As Worksheet
'Disable updates/events
Application.ScreenUpdating = False
Application.EnableEvents = False
'Define here your worksheets
Set ws = Table1
Set wsRules = Table2
'Clear and reset format conditions in column A
With Range(ws.Cells(2, 1), ws.Cells(60000, 1))
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=" & wsRules.Cells(2, 1).Text
With .FormatConditions(1)
'TODO format your stuff
End With
End With
'Clear and reset format conditions in column B
With Range(ws.Cells(2, 2), ws.Cells(60000, 2))
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=" & wsRules.Cells(2, 2).Text
With .FormatConditions(1)
'TODO format your stuff
End With
End With
'Enable updates/events
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub