vba转c#的问题
'
Sub Macro1()
'
'
' ActiveSheet.Unprotect
Range("F47").GoalSeek Goal:=1, ChangingCell:=Range("F46")
End Sub
'
'************************************************************
Sub Macro2()
' Macro2 Macro
'
'
'
Range("F52").Select
Range("F52").GoalSeek Goal:=1, ChangingCell:=Range("F42")
Range("F53").Select
Range("F53").GoalSeek Goal:=1, ChangingCell:=Range("F38")
End Sub
'*******************************************
Sub Macro3()
'
' Macro3 Macro
'
'
'
Set WS1 = Worksheets(ActiveCell.Worksheet.Name)
' MsgBox ActiveCell.Worksheet.Name
'
Application.MaxChange = 0.000001
ActiveWorkbook.PrecisionAsDisplayed = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
For I = 1 To 100
Application.Run "Macro1"
Application.Run "Macro2"
a = WS1.Cells(47, 6)
b = WS1.Cells(52, 6)
c = WS1.Cells(53, 6)
If ((a > 0.999 And a < 1.001) And (b > 0.999 And b < 1.001) And (c > 0.999 And c < 1.001)) Then GoTo 200
100 Next I
200 Rem
End Sub
*********************************************
以上代码改编成C#,如果三个变量循环+0.000001,嵌套3层for循环会造成假死,请问有什么解决办法或其他思路?
for (F46 = 0.000001; F47 > 1.001 || F47 < 0.999; F46 = F46 + 0.000001)
{
for (F42 = 0.000001; F52 > 1.001 || F52 < 0.999; F42 =F42 + 0.000001)
{
for (F38 = 0.000001; F53 > 1.001 || F53 < 0.999; F38 = F38 + 0.000001)
{
Sub Macro1()
'
'
' ActiveSheet.Unprotect
Range("F47").GoalSeek Goal:=1, ChangingCell:=Range("F46")
End Sub
'
'************************************************************
Sub Macro2()
' Macro2 Macro
'
'
'
Range("F52").Select
Range("F52").GoalSeek Goal:=1, ChangingCell:=Range("F42")
Range("F53").Select
Range("F53").GoalSeek Goal:=1, ChangingCell:=Range("F38")
End Sub
'*******************************************
Sub Macro3()
'
' Macro3 Macro
'
'
'
Set WS1 = Worksheets(ActiveCell.Worksheet.Name)
' MsgBox ActiveCell.Worksheet.Name
'
Application.MaxChange = 0.000001
ActiveWorkbook.PrecisionAsDisplayed = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
For I = 1 To 100
Application.Run "Macro1"
Application.Run "Macro2"
a = WS1.Cells(47, 6)
b = WS1.Cells(52, 6)
c = WS1.Cells(53, 6)
If ((a > 0.999 And a < 1.001) And (b > 0.999 And b < 1.001) And (c > 0.999 And c < 1.001)) Then GoTo 200
100 Next I
200 Rem
End Sub
*********************************************
以上代码改编成C#,如果三个变量循环+0.000001,嵌套3层for循环会造成假死,请问有什么解决办法或其他思路?
for (F46 = 0.000001; F47 > 1.001 || F47 < 0.999; F46 = F46 + 0.000001)
{
for (F42 = 0.000001; F52 > 1.001 || F52 < 0.999; F42 =F42 + 0.000001)
{
for (F38 = 0.000001; F53 > 1.001 || F53 < 0.999; F38 = F38 + 0.000001)
{
...全文
相关推荐
批量ppt转pdf
自制批量ppt转pdf 源码http://blog.csdn.net/agrapier/article/details/49406253
将PDF文件转为TXT文件
一款通过Adobe acrobat的Com接口来实现PDF文件转TXT文本格式小程序。同时也能实现PDF转图像的功能,这里就不介绍,用法一样。
Excel行列号转化
http://blog.csdn.net/tx_officedev/article/details/7448518 相关资源
GPS坐标转换集合
收集的多个多种经纬度转大地坐标的代码JS、C#、EXCEL,还有一篇坐标转换论文
c# 调用word 的vba的宏
c#调用word中的vba宏!这个可以很方便的来实现罢工自动化!


