2017-06-06 69 views
0

寻求输入。在下面的代码中,我正在从数据表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 
+0

如果在任何时候只有一个“xxxData.csv”工作簿打开,那么您可以遍历所有打开的工作簿并找到匹配项。 –

+0

感谢您的回应Tim。这是我不知道如何处理的一件事。 – Rick

+0

您可以使用“数据”选项卡>“来自文本”,然后选择要在向导中跳过的列http://www.jkp-ads.com/Articles/importtext.asp – Slai

回答

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 
'...