VBA excel使只读文本文件(VBA excel make read only a text file)
是否可以使用workbooks.opentext方法以readOnly方式打开文本文件? 当我尝试在其他用户打开文件时运行宏时,我收到消息“正在使用的文件”。
Opentext表达式中没有readOnly选项可用 ;
OpenText(Filename,Origin,StartRow,DataType,TextQualifier,ConsecutiveDelimiter,Tab,Semicolon,Comma,Space,Other,OtherChar,FieldInfo,TextVisualLayout,DecimalSeparator,ThousandsSeparator,TrailingMinusNumbers,Local)
同时,Worbooks.Open方法提供了一个ReadOnly选项。
谢谢
Is it possible to open a text file as readOnly with the workbooks.opentext method? When I try to run a macro while the file is opened by an other user I get the message "file in use".
There is no readOnly option avalaible in the Opentext expression;
OpenText( Filename , Origin , StartRow , DataType , TextQualifier , ConsecutiveDelimiter , Tab , Semicolon , Comma , Space , Other , OtherChar , FieldInfo , TextVisualLayout , DecimalSeparator , ThousandsSeparator , TrailingMinusNumbers , Local )
Meanwhile there is a ReadOnly option available with the Worbooks.Open method.
Thank you
原文:https://stackoverflow.com/questions/46615948
最满意答案
好吧,一堆烂摊子,我终于偶然发现了一个简单易行的解决方案。 (告诉你即使是一只盲猪也能找到一颗玉米穗)。 请注意,它不发送文件,而是实际发送csv作为消息的正文......这对我的目的来说很好。
function mailRequestCSV() { // Send the PDF of the spreadsheet to this email address var email_send_address = "david.fickes@sunrunhome.com"; var email_subject = "datagen request" // Get the currently active spreadsheet ID var fileID = SpreadsheetApp.getActiveSpreadsheet(); // Build the URL var url = 'https://docs.google.com/spreadsheet/ccc?key='+fileID+'&output=csv'; var response = UrlFetchApp.fetch(url); MailApp.sendEmail(email_send_address, email_subject, response); }
Much better answer which sends as an attachment:
Full credit to: https://gist.github.com/nirajkadam/0b41a01b8e739800c964
function mailRequestCSV() { // Send the PDF of the spreadsheet to this email address var recipients = "someone@somewhere.com"; var ssID = SpreadsheetApp.getActiveSpreadsheet().getId(); var sheetName = SpreadsheetApp.getActiveSpreadsheet().getName(); var email = Session.getActiveUser().getEmail(); var subject = "DataGenerationRequest "; var body = "****NOTE: THIS IS AN AUTO COMPUTER-GENERATED REPORT****"; var requestData = {"method": "GET", "headers":{"Authorization":"Bearer "+ScriptApp.getOAuthToken()}}; var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?format=csvx&id="+ssID; var result = UrlFetchApp.fetch(url, requestData); var contents = result.getContent(); MailApp.sendEmail(recipients, subject, body, {attachments:[{fileName:sheetName+".csv", content:contents, mimeType:"application//csv"}]}); }
相关问答
更多-
importData()是一个公式,当用户打开电子表格以及公式引用的其他单元格发生更改时,会对其进行评估和重新审计。 因此,这意味着公式的输出不适用于Apps Scripts。 但是,使用Apps脚本,您可以轻松编写代码来执行公式。 有关如何解析CSV数据,请参阅此问题 importData() is a formula, that is evaluated and reevaulated when a user opens the spreadsheet and when other cells that ...
-
以下修改怎么样? 修改点: 来自URL的JSON数据如下。 [ { "date": 1502352000, "high": 0.0899, "low": 0.08754124, "open": 0.08795499, "close": 0.08988724, "volume": 1390.47552953, "quoteVolume": 15727.49124739, "weightedAverage": 0.08841051 }, . ...
-
您的搜索参数语法缺少引号。 应该是这样的: var searchFiles = DriveApp.searchFiles("title = '" + fileName + "'"); Your search parameter syntax is missing quotes. Should be like this: var searchFiles = DriveApp.searchFiles("title = '" + fileName + "'");
-
我最后自己回答了这个问题。 解决方案是下面的代码,它是从这里改编而来的: 如何自动将上传的CSV或XLS文件中的数据导入Google表格 ,并确保我导入的CSV文件格式化为MS-DOS CSV文件。 function importData() { var fSource = DriveApp.getFolderById('0B6MhpeZ2qe57WVdrLWNPdXBIT3c'); // reports_folder_id = id of folder where csv reports are sav ...
-
在获得上述评论的帮助并调整我的触发器后,我有一个解决方案。 这是脚本: function onEdit() { var sheet = SpreadsheetApp.openById("id"); var entries = [{ name : "Download Data", functionName : "saveAsCSV" }]; sheet.addMenu("Script Center Menu", entries); }; function saveAsCSV( ...
-
将Google表格邮寄为CSV(Mailing Google Sheet as CSV)[2023-07-31]
好吧,一堆烂摊子,我终于偶然发现了一个简单易行的解决方案。 (告诉你即使是一只盲猪也能找到一颗玉米穗)。 请注意,它不发送文件,而是实际发送csv作为消息的正文......这对我的目的来说很好。 function mailRequestCSV() { // Send the PDF of the spreadsheet to this email address var email_send_address = "david.fickes@sunrunhome.com"; var email_s ... -
在你的loadFiles()脚本中。 尝试将其更改为类似的内容。 function loadFiles(folderID) { //var folderID = (typeof(folderID) !== 'undefined')? folderID : 'Your_folder_id'; var folderID = (typeof(folderID) !== 'undefined')? folderID : 'Your_folder_id'; var fldr = DriveApp.getF ...
-
使用新的Google电子表格格式下载工作表的CSV Feed(Download CSV feed for a sheet using the new Google Spreadsheet format)[2022-04-09]
你是99% - 实际的URL是: https://docs.google.com/spreadsheets/d//export?gid= &format=csv 换句话说,你输入“?id =”而不是“?gid =”。 使用正确的URL,您可以下载文档中的任何工作表,而不仅仅是第一个工作表。 You are 99% there - the actual URL is: https://docs.google.com/spreadsheets/d/ /export?gid= ... -
我设法通过添加getLastRow()来解决这个问题; 命令 希望这有助于其他人 var lastrow = s.getLastRow(); s.getRange(lastrow + 1, 1, csvData.length, csvData[0].length).setValues(csvData); I managed to fix the issue by adding getLastRow(); command hopefully this helps someone else out var l ...
-
此代码: for ( var i=0, lenCsv=csvData.length; i
相关文章
更多- [How to] Make custom search with Nutch(v 1.0)?(转)
- JXLS根据excel模板生成EXCEL并下载
- Becoming a data scientist
- 用‘button’跟‘text’组合代替‘file’,选择文件后点‘submit’,‘file’的值被清空
- POI 操作Excel公式
- Java 流(Stream)、文件(File)和IO
- 使用POI操作Excel和Word
- [转]So You Want To Be A Producer
- A Great List of Windows Tools
- 文本文件批量操作类(php)
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)