我编写了一个称为GenerateCSV的函数,该函数将数据写入一个csv文件。该功能存储在模块(“模块1”)中。为了完整性,我在下面共享代码,但我认为这对我的问题不是必需的。
Option Explicit
Sub GenerateCSV(ExcelStartRange As String, OutputFileName As String)
'Variable declaration
Dim Data As Variant
Dim MaxRow As Integer
Dim MaxColumn As Integer
Dim Row As Integer
Dim Column As Integer
Open OutputFileName For Output As #1
MaxRow = 2
MaxColumn = 722
For Row = 1 To MaxRow
For Column = 1 To MaxColumn
Data = Range(ExcelStartRange).Offset(Row - 1, Column - 1).Value
If Column < MaxColumn Then
Write #1, Data,
Else
Write #1, Data
End If
Next
Application.StatusBar = "Row = " & Row
Next
Close #1
End Sub
我还在工作表“ OutputCFs”中编写了一个调用GenerateCSV的宏:
Private Sub CommandButton1_Click()
Call GenerateCSV(Range("StartRange1"), Range("OutputFileName1"))
Call GenerateCSV(Range("StartRange3"), Range("OutputFileName3"))
End Sub
当我按下“ OutputCFs”中的宏按钮时,它工作正常。但是,当我将宏按钮移动/复制粘贴到另一个工作表(例如“指南”)时,它不再起作用。
为了使“宏”按钮也可以在“指南”工作表中使用,我应该在代码中添加些什么。
谢谢。
一个问题是,GenerateCSV()
期望将String
作为输入,而您的按钮代码将Range()
对象作为输入。
EDIT#1:
这可能会导致问题。例如,如果Range("StartRange1")
的值为A1
,则按钮代码将假定A1在按钮所在的同一张纸上。