如何使表格动态

时间:2017-06-06 23:32:04

标签: excel vba excel-vba csv

寻求对此的输入。在下面的代码中,我正在做的是从工作表MayData.csv复制数据并粘贴到Master2017.xlsx中。

Master2017是主电子表格,包含每月更新的数据。 因此,MayData.csv将根据月份而变化(JuneData.csv,JulyData.csv,等等......)

我怎样才能使xxxData.csv动态化?现在我尝试运行宏,但每次都必须更改工作表的名称。

这里的代码或多或少看起来像(我只包括部分内容):

Dim intChoice As Long
Dim strPath As String
Dim intUsedRows As Integer
Dim intCounter As Integer
Dim Lastrow As Long

'Open Selected File
Workbooks.Open (strPath)
Columns("C:D").Select
Selection.Delete Shift:=xlToLeft
Columns("F:H").Select
Selection.Delete Shift:=xlToLeft
Columns("G:H").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Windows("Master 2017.xlsx").Activate
Windows("MayData.csv").Activate
Columns("B:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Windows("Master 2017.xlsx").Activate
Windows("MayData.csv").Activate
Columns("I:S").Select

1 个答案:

答案 0 :(得分:0)

用户是否选择了CSV文件?如果是,那么当您打开它时,您可以设置一个工作簿变量,以便稍后可以参考它。

Dim wb As Workbook
'...
Set wb = Workbooks.Open(strPath)
'...
With wb.Sheets(1)
    .Columns("C:D").Delete Shift:=xlToLeft
    .Columns("F:H").Delete Shift:=xlToLeft
    .Columns("G:H").Delete Shift:=xlToLeft
End With 
'...