Excel 使用命令按钮自动生成不同的工作表
我正在尝试使excel工作簿由5张工作表组成。有一个摘要页面,我在其中包括一个命令按钮,基本上允许上传一个文件,然后填写在特定的表。 我得到的错误是没有在指定的表格中填充单元格,而是在摘要页面(即带有按钮的页面)中填充单元格。这是我到目前为止写的代码。 下面是一个示例,我试图在第3页中定向扩展名为SIG的文件Excel 使用命令按钮自动生成不同的工作表,excel,vba,cell,Excel,Vba,Cell,我正在尝试使excel工作簿由5张工作表组成。有一个摘要页面,我在其中包括一个命令按钮,基本上允许上传一个文件,然后填写在特定的表。 我得到的错误是没有在指定的表格中填充单元格,而是在摘要页面(即带有按钮的页面)中填充单元格。这是我到目前为止写的代码。 下面是一个示例,我试图在第3页中定向扩展名为SIG的文件 Set fd=Application.FileDialog(msoFileDialogOpen) 有fd .AllowMultiSelect=True .过滤器 .Filters.Add“
Set fd=Application.FileDialog(msoFileDialogOpen)
有fd
.AllowMultiSelect=True
.过滤器
.Filters.Add“所有文件”,“***”
.Filters.Add“ID Files”,“*.ID”,1
.FilterIndex=1
.Title=“选择SSI标识文件”
.InitialFileName=“”
如果.Show=-1,则
重拨选定路径(.SelectedItems.Count)
对于I=0,选择editems.Count-1
SelectedPath(I)=.SelectedItems(I+1)
关闭#1
如果右$(selectedPaths(I),3)=“SIG”,则
第(3)页。选择
打开所选路径(I)作为#1输入
x=4
txt=输入(LOF(1),1)
使用RegExp
.Pattern=“\B/*”
.Global=True
.IgnoreCase=False
txt=.Replace(txt,“”)
以
使用RegExp
.Pattern=“S[0-9A-Z][0-9A-Z][0-9]+”
.Global=True
设置匹配项=.Execute(txt)
比赛中的每一场比赛
调试。打印匹配。值
如果x Mod 30=0,则
x=x+4
如果结束
单元格(x,1)=匹配
x=x+1
单元格(x,1)=匹配
如果x Mod 30 0,则
x=x+1
如果结束
下一个
以
如果结束
下一个
如果结束
以
端接头
谢谢你的帮助 我明白了,您先选择工作表,然后填充单元格。这不是最安全的方法 尝试使用单元格的完整引用 你的部门
For Each Match In matches
Debug.Print Match.Value
If x Mod 30 = 0 Then
x = x + 4
End If
Cells(x, 1) = Match
x = x + 1
Cells(x, 1) = Match
If x Mod 30 <> 0 Then
x = x + 1
End If
Next
匹配项中的每个匹配项的
调试。打印匹配。值
如果x Mod 30=0,则
x=x+4
如果结束
单元格(x,1)=匹配
x=x+1
单元格(x,1)=匹配
如果x Mod 30 0,则
x=x+1
如果结束
下一个
应该是这样的:
For Each Match In matches
Debug.Print Match.Value
If x Mod 30 = 0 Then
x = x + 4
End If
ThisWorkbook.Sheets(3).Cells(x, 1) = Match
x = x + 1
ThisWorkbook.Sheets(3).Cells(x, 1) = Match
If x Mod 30 <> 0 Then
x = x + 1
End If
Next
匹配项中的每个匹配项的
调试。打印匹配。值
如果x Mod 30=0,则
x=x+4
如果结束
此工作簿.Sheets(3).单元格(x,1)=匹配
x=x+1
此工作簿.Sheets(3).单元格(x,1)=匹配
如果x Mod 30 0,则
x=x+1
如果结束
下一个
我希望这会有帮助,我认为这真的很简单
For Each Match In matches
Debug.Print Match.Value
If x Mod 30 = 0 Then
x = x + 4
End If
ThisWorkbook.Sheets(3).Cells(x, 1) = Match
x = x + 1
ThisWorkbook.Sheets(3).Cells(x, 1) = Match
If x Mod 30 <> 0 Then
x = x + 1
End If
Next