我有一个与Visual Basic的问题,我想生成一个csv只有3列,这将是BMR,我有一个代码在这里,但它不仅生成3列,但整个工作表,你能帮我吗?保存3作为CSV的工作表的列(与VBA)
Sub GravaTXT()
Dim pasta As Workbook
Dim abaPlan As Worksheet
Dim b As Range
Dim m As Range
Dim r As Range
Dim name As String
name = Range("R13").Value
Set b = ActiveCell.EntireColumn("B")
Set m = ActiveCell.EntireColumn("M")
Set r = ActiveCell.EntireColumn("R")
Set abaPlan = ThisWorkbook.Worksheets("Orcamento")
Set pasta = Application.Workbooks.Add
abaPlan.Copy Before:=pasta.Worksheets(pasta.Worksheets.Count)
Application.DisplayAlerts = False
pasta.SaveAs Filename:="C:\Users\alcir.scarmin\Desktop\" & name & ".csv", FileFormat:=xlCSV
Application.DisplayAlerts = True
pasta.Close SaveChanges:=False
End Sub
编辑
我做了一个小的修改(的@Pehs回答)要能正常运行,但我离开的方式,现在只需要行“20”怎么会我做OffSet?我尝试了几种方法,但没有奏效。 (我是巴西人,我使用谷歌翻译,巴西人不喜欢自己帮忙)谢谢。
Sub GravaTXT()
Dim abaPlan As Worksheet
Set abaPlan = ThisWorkbook.Worksheets("Orcamento")
Dim name As String
name = abaPlan.Range("R13").Value
Dim pasta As Workbook
Set pasta = Application.Workbooks.Add
abaPlan.Range("B20,M20,R20").Copy pasta.Worksheets(1).Range("A1")
pasta.Worksheets(1).name = abaPlan.name
Application.DisplayAlerts = False
pasta.SaveAs Filename:="C:\Users\alcir.scarmin\Desktop\" & name & ".csv", FileFormat:=xlCSV
Application.DisplayAlerts = True
pasta.Close SaveChanges:=False
End Sub
您正在将整个工作表复制到新的工作簿。这并不令人惊讶,它作为整个表单出来。如果您想要某些列,请创建一个空白工作表并复制这些列。 – GSerg