我有一个超棒的 vba 宏, 从< a href=> "http://snipplr.com/view/54755/" rel="nofollow" >这里做我想做的。 我正试图把它转换为 VB. NET 。
VBA的代码:
Sub bah()
Set Range you want to export to file
Dim rgExp As Range: Set rgExp = Range("B2:C6")
Copy range as picture onto Clipboard
rgExp.CopyPicture Appearance:=xlScreen, format:=xlBitmap
Create an empty chart with exact size of range copied
With ActiveSheet.ChartObjects.Add(Left:=rgExp.Left, Top:=rgExp.Top, _
Width:=rgExp.Width, Height:=rgExp.Height)
.Name = "ChartVolumeMetricsDevEXPORT"
.Activate
End With
Paste into chart area, export to file, delete chart.
ActiveChart.Paste
ActiveSheet.ChartObjects("ChartVolumeMetricsDevEXPORT").Chart.Export "C:UsersajohnsonDesktopworkdamnit.jpg"
ActiveSheet.ChartObjects("ChartVolumeMetricsDevEXPORT").Delete
End Sub
这需要优异的射程, 然后将其放入一张图表, 该图表是该射程的复制件, 并保存为 JPG 。
以下是我最近试图让它成为VB.
Dim xlApp As New Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim xlRange As Excel.Range
xlWorkBook = xlApp.Workbooks.Open("C: est.xlsx")
xlWorkSheet = xlWorkBook.Sheets("Sheet1")
xlRange = xlWorkSheet.Range("B2:C6")
With xlWorkSheet.ChartObjects.add(xlRange.Left, xlRange.Top, xlRange.Width, xlRange.Height)
.name = "Chart1"
.activate()
End With
xlWorkSheet.ChartObjects("Chart1").Paste()
xlWorkSheet.ChartObjects("Chart1").chart.export(Filename:="C:UsersajohnsonDesktopsaveit.jpg")
xlWorkSheet.ChartObjects("Chart1").delete()
我正遇到转换 Apviouschart.Paste
方法的麻烦。 我无法在 VB.NET 中找到该方法。 它会投出一个错误, 或者在 VB.NET 中只留下一个空框( 如果我在粘贴前添加了 < code>.chart , 但是没有粘贴任何值), 但是在 VBA 中, 它会填充利息值 。 我尝试了创建图表对象, 但似乎也没有成功 。
我觉得我快要把它解决了,但我搞不明白。我想我可以把它当作VBA的宏,从VB.NET中把它称为VB.NET,但在某种程度上这似乎很荒谬。任何帮助都会非常感激。我也愿意接受不同的方法,这就是我在VBA中遇到的很好的工作,所以我认为这是一个良好的起点。
谢啦! 谢啦! 谢啦! 谢啦! 谢啦!