macros从工作簿1的单元格中的数据“另存为”工作簿2

我是macros的基本用户,但现在陷入了下面的困境。 我有两个工作簿打开。 我需要“另存为”并使用工作簿1中的单元格中的文件名closures工作簿2.macros正在从工作簿1运行。对不起,但是这是尽可能从互联网上获得的。 我猜最后一行的改变。 噢,我不知道Dim是什么意思。

Dim FName As String Dim FPath As String FPath = "G:" FName = Sheets("sheet 1").Range("A1").Text ThisWorkbook.SaveAs Filename:=FPath & "\" & FName 

其他人有状态,Dim代表维度。

从历史上看,在各种BASIC(初学者通用符号指令代码)编程语言中,您不必声明variables,除了必须声明的数组之外。 所以,即使是非常古老的BASIC语言也有声明数组的方法,这是通过使用“Dim”关键字来完成的。 当基本语言长大了一点,开始支持声明常规variables,他们只是借用已经使用的关键字Dim。 所以Dim表示维度,最初用来表示数组的大小和/或范围,但是接pipe它来声明任何types的variables。

顺便说一下,随着编程语言的发展,其语言devise者通常不愿意引入新的关键字,因为这样做往往会破坏现有的程序。 例如,如果他们引入了“var”关键字,那么很可能会破坏许多使用“var”作为variables名称的现有程序。 随着语言的发展,find一个现有的关键字或多或less的用于增加function的情况并不less见。

Dim是你如何维(声明你的variables),在你的情况下,告诉代码FName将引用你分配的string值。 有关更好的教程,请参阅此链接

为了让你的代码工作,试试这个:

 Dim FName As String Dim FPath As String FPath = "G:" FName = ThisWorkbook.Sheets("sheet 1").Range("A1").Text 'use ThisWorkbook since you are running from Workbook1 With Workbooks("Workbook2.xlsx") .SaveAs Filename:=FPath & "\" & FName .Close True '-> use false to not save changes End With 'here you need to tell VBA what specific workbook you want to save 'if you used ThisWorkbook here, you would save the workbook where the code runs from, which is Workbook1 

你也可以采取更好的方法如下:

 Dim FName as String, FPath as String Dim wkb1 as Workbook, wkb2 as Workbook Set wkb1 = ThisWorkbook '-> or Set wkb1 = Workbooks("workbook1") FPath = "G:" FName = wkb1.Sheets("sheet 1").Range("A1").Text Set wkb2 = Workbooks("workbook2") With wkb2 .SaveAs Filename:=FPath & "\" & FName .Close True '-> use false to not save changes End With 

你在正确的轨道上。 你可以只是改变最后的留置权,这将工作:

 Workbooks("Workbook2Filename.xls").SaveAs Filename:=FPath & "\" & FName 

不过,我会推荐以下方法:

 Dim FName As String Dim FPath As String Dim wbBook1 As Workbook Dim wbBook2 As Workbook Set wbBook1 = ActiveWorkbook Set wbBook2 = Workbooks("Workbook2Filename.xls") 'assumed workbook 2 is already open FPath = "G:" FName = wbBook1.Sheets("sheet 1").Range("A1").Text wbBook2.SaveAs Filename:=FPath & "\" & FName Set wbBook1 = Nothing Set wbBook2 = Nothing 

Dim代表Dimension,这是你如何告诉VBA做一个variables来存储信息。