我想从一本已关闭的书中复制一个工作表(正常工作),我想将唯一的值而不是公式复制到我的活动工作簿中,这样当我将工作簿另存为.csv时,不会出现逗号行( ,,,),因为原始工作表中的单元格中包含公式或其他内容。
我尝试过:
Set sourceBook = Workbooks.Open(fileName)
sourceBook.Sheets("Access Request Spreadsheet").value.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).value
sourceBook.Close`
但这会引发错误。 复制范围可能总是不同的...但是有一种简单的方法可以只复制值,或者当我另存为.csv来剥离行时 、、、、、 、、、、 、、、、 、、、
谢谢!
---更新----
好吧,我能够删除副本中的公式,现在,当我另存为.csv时,它末尾没有多余的行。 问题
现在它正在从一栏中的数字中删除前导零。数字的长度可能不一致,因此不能设置为“ 0000000”。
我的代码是:
Set sourceBook = Workbooks.Open(fileName)
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "Temp"
End With
With sourceBook.Sheets("Access Request Spreadsheet").UsedRange
ThisWorkbook.Sheets("temp").Range("A1").Resize( _
.Rows.Count, .Columns.Count) = .value
End With
sourceBook.Close
我已经尝试过.value.NumberFormat = "@"
有什么想法吗?
我的输出截断了我的学生证,应该是
001234
05432
1284
收件人:
1234
5432
1284
如上所述,问题在于不同的学校具有不同的ID字段长度,因此无法将其设置为预定义的长度。
复制到新工作表并删除公式时,可以将值保留为文本吗?
我尝试过:
With sourceBook.Sheets("Access Request Spreadsheet").UsedRange
ThisWorkbook.Sheets("temp").Range("A1").Resize( _
.Rows.Count, .Columns.Count) = .value.NumberFormat = "@"
End With
但是会引发错误:(
干杯!
答案 0 :(得分:0)
只需分别执行[1]格式化和[2]复制。 1 -> A
2 -> B
3 -> C
..
25 -> Y
26 -> Z
27 -> AA
28 -> AB
29 -> AC
..
不是有效的VBA语法;您必须先定义目标范围的数字格式:-)
.value.NumberFormat = "@"