【发布时间】:2023-01-03 13:40:14
【问题描述】:
此宏将具有数字名称的 Excel 工作表复制到另一个 Excel 工作簿。
例如,只有标题为 6 位数字的工作表。例如“140655”。
我还想复制具有标准英文名称(例如“预算”)的工作表。
Const CalcDelay = 0.00000578704
Dim CopyRange As String
Dim PasteRange As String
Dim ScanFileOpen As Byte
Dim ScanCount As Byte
Dim ScanSaveSpec As String
Dim ScanSaveFile As String
Dim ReturnWindow As String
Dim ReportFile As String
Dim ExcelVersion As String
Sub OpenReportFile()
ReturnWindow = [ProcessWinSpec].Value
If [ReportFileFlag].Value = True Then
Application.ScreenUpdating = False
Workbooks.Open Filename:=[ReportFileSpec].Value
Windows(ReturnWindow).Activate
Application.ScreenUpdating = True
Else
MsgBox ("Error: File not found")
End If
End Sub
Sub DoScan()
Dim Work As Variant
Dim X As Interger
ReturnWindow = [ProcessWinSpec].Value
ReportFile = [ReportFileName].Value
ExcelVersion = IIf([FileNameExt].Value = ".xls", 2003, 2013)
For Each Work In [ScanFlags]
ScanFileOpen = 0
ScanCount = 0
If Work.Value = 1 Then
[ScanName].Value = Work.Offset(0, 1).Value
[ScanCalcRange].Calculate
ScanSaveFile = [ScanFile].Value
ScanSaveSpec = [ScanSpec].Value
For X = Work.Offset(0, 2).Value To 1 Step -1
ScanTabName = Work.Offset(0, X + 2).Value
[ScanTab].Value = ScanTabName
[ScanCalcRange].Calculate
If [ReadFlag].Value = 1 Then DoCopyTab
Next
End If
If ScanFileOpen = 1 Then
ActiveWorkbook.Save
ActiveWindow.Close
End If
Next
End Sub
【问题讨论】:
-
SO 不是免费的代码编写服务。一旦您努力自己做出这些改变并遇到困难,我们将非常乐意提供帮助。当发生这种情况时,您可以解释您遇到的问题,以 minimal reproducible example 的形式包括代码的相关部分,并提出与该代码相关的具体问题,我们会尽力提供帮助。如果您无法做到这一点,请聘请承包商为您制作。
-
如果很难看出您发布的代码与描述的关系,尤其是在过度使用方括号的情况下
-
@KenWhite 有代码,作者正在解释不清楚要完成的内容。我同意这是一个薄弱的问题,但它是可重现的,因为不清楚如何扫描文件中的单词?
-
@pgSystemTester:这是 OP 从某处复制/粘贴获得的代码转储和需求规范。这与张贴空 C
main()存根并询问如何更改它以实际完成任务的家庭作业问题没有任何不同。这个只是发布了别人的代码,并要求我们为他们定制它。 -
@KenWhite 是的,我想你是对的。不过,这比一些努力要好,但我同意你的看法。