2
我有一個Excel文件(.xlsm),裏面有一個宏。我想將這個Excel文件上傳到服務器上,讓C#執行它而不是VBA宏。這個宏看起來很簡單,但我不太瞭解它將其轉換爲C#。下面是宏代碼:將Excel宏轉換爲C#?
Sub publishpages()
'calculate how many iterations
x = 0
Sheets("pagegen").Select
Range("n1").Select
Range("n1").Copy
numberOfPages = ActiveCell.Value
'step through and select each sample
For x = 0 To numberOfPages
Sheets("listsample").Select
Range("A2").Select
ActiveCell.Offset(x, 0).Range("A1").Select
Selection.Copy
Sheets("pagegen").Select
Range("l1").Select
ActiveSheet.Paste
'name folder and filename
Sheets("pagegen").Select
Range("ac2").Select
Range("ac2").Copy
foldername = ActiveCell.Value
'publish pages
Range("d3:q80").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWorkbook.PublishObjects.Add(xlSourceRange, "C:\Temp\" & foldername, "pagegen", "$d$3:$q$80", xlHtmlStatic, "sampleweb11 current_22", "").Publish (True)
Next x
End Sub
因爲我計劃在一臺服務器上運行此,我要尋找一個託管庫,所以我沒有在服務器上安裝Office。這就是我正在看的,它甚至支持Linq:http://epplus.codeplex.com
有關如何啓動它的任何想法?
考慮使用VB.NET,因爲它處理_Office.Interop_好得多。而不是使用'.Select','.Copy'和'.Paste'命令的剪貼板考慮使用直接賦值('Range [xx] .Value2 = Range [yy] .Value2') – ja72
重構肯定會有幫助代碼轉換)。你可以發佈重構版本作爲你的答案,我會接受。這會幫助我理解這是在做什麼。 – TruMan1