Yes/No MsgBox
我的VBA脚本中有一个返回问题供用户回答.每当按下"是"或"否"按钮时,除了运行其各自代码的脚本之外,MsgBox
弹出另一个带有数字"6"或"7"的按钮.如何禁用此秒MsgBox
?
这是我的代码:
Dim question As Integer
question = MsgBox("Unfortunately, the Database has no sources regarding " & Category & " in " & country & ". Would you like to broaden your search and see all sources regarding " & country & "?", vbYesNo + vbQuestion, "Empty Sheet")
MsgBox question
If question = vbYes Then
Sheets("Results").Range("D6").ClearContents
Sheets("Results").Range("D7").ClearContents
Category = Sheets("Results").Range("D6").Value
Else
Sheets("Results").Range("D5").ClearContents
Sheets("Results").Range("D6").ClearContents
Sheets("Results").Range("D7").ClearContents
Exit Sub
End If
Run Code Online (Sandbox Code Playgroud) 我有一个带有函数的脚本,该函数遍历Google电子表格中的一系列行,并将F列中的多行单元格拆分为多行.然后,它继续将同一行的其他列中的单元格复制到新创建的行.以下是我的意思的一个例子.
函数运行的范围是:
该函数运行并生成以下内容:
如您所见,在第一张图像中,F列中的某些单元格有多条线条.该函数检测到这些,将它们分成与换行符一样多的行,然后复制其他列中的剩余单元格.对于"John Doe"和"Candice Len",列F具有多行条目,因此,在函数运行后,这两个名称都与F列中的地址一样多.
我正在使用的函数如下:(列F在函数中有索引5)
function result(range) {
var output2 = [];
for(var i=0, iLen=range.length; i<iLen; i++) {
var s = range[i][5].split("\n");
for(var j=0, jLen=s.length; j<jLen; j++) {
var output1 = [];
for(var k=0, kLen=range[0].length; k<kLen; k++) {
if(k == 5) {
output1.push(s[j]);
} else {
output1.push(range[i][k]);
}
}
output2.push(output1);
}
}
return output2;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.但是,我希望该函数对F列之外的其他列执行相同的操作.因此,如果我有其他具有多行条目的列,我希望该函数遍历行,将多行单元格拆分为有很多行,因为有换行符并将剩余列中单元格的内容复制到新创建的行中.下面是列E和F都有多行条目的示例.
如果我有这样的事情:
我希望该函数将其转换为:
在这种情况下,重要的是要注意每个多行单元格的每一行必须具有相同数量的换行符,因为不同的行必须映射到不同列中的相应行.换句话说,以最后两个屏幕截图为例,在"John Doe"条目中,"旧金山"必须与"address1"和"Cincinnati"在同一行中与"address2"在同一行中结束.对于"Candice Len"条目,"华盛顿","凤凰","地址1"和"地址2"也是如此.
列E和F只是一个例子.该脚本必须在两列以上的多行单元格中运行.
我如何能够更改脚本,以便能够对其他列而不仅仅是列F执行相同的操作?
非常感谢你.
我正在尝试在我的 React 本机应用程序中使用 Firebase,我正在使用 Expo 管理的工作流程开发该应用程序。
我已经安装了npmexpo-firebase-analytics
和firebase
npm 包。根据文档,Firebase 不能在 Expo 客户端中运行,并且只有当应用程序构建并在真实设备上运行时。
为了使其在 Expo 客户端上运行,按照说明,我在 Firebase 上创建了一个 Web 应用程序,并使用了apiKey
以及measurementId
我已包含在我的 app.json 文件中的 。
"web": {
"config": {
"firebase": {
"appId": "1:xxxxxxxxxx66e",
"apiKey": "AIxxxxxxxxxxv0",
"measurementId": "G-XXXXXXXX"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还从expo-firebase-analytics
我的 App.js 文件中的包中调用了这两个函数:
Analytics.setUnavailabilityLogging(false);
Analytics.setDebugModeEnabled(true);
Run Code Online (Sandbox Code Playgroud)
我所有的 firebase 事件和日志都被记录到控制台。但是,我在 Firebase 控制台的“调试视图”中看不到任何数据。我究竟做错了什么?
我有一个带有VBA的Excel文件,它从我的计算机上的文件中提取信息.Excel文件位于网络文件夹中,我希望网络上的其他用户也可以使用它.但是,我已经在VBA上硬编码了文件路径,因此,每当其他用户打开它时,它就会查找不可用的文件.
这是我想改变的路径:
C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx
Run Code Online (Sandbox Code Playgroud)
路径上唯一的区别是用户名:User1,user2等.
如何编写VBA代码,以便用Windows用户名替换文件路径中的用户名?
我曾尝试使用外卡并尝试使用ENVIRON("用户名"),但尚未成功.
我要替换的代码如下:
Private Sub Workbook_Open()
Application.Visible = False
WelcomeForm.Show
Workbooks.Open ("C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx")
End Sub
Run Code Online (Sandbox Code Playgroud)
这就是我使用ENVIRON做的事情:
Private Sub Workbook_Open()
Dim username As String
username = Environ("username")
Application.Visible = False
WelcomeForm.Show
Workbooks.Open ("C:\Users\&username&\Documents\The Market in\DATA FOR REPORTS.xlsx")
End Sub
Run Code Online (Sandbox Code Playgroud)
非常感谢你
我想将工作表中的某个范围格式化为 Excel 中的表格。格式化始终从第 10 行开始。为此,我编写了以下代码:
Set rng = Range(Range("B10"), Range("B10").End(xlUp).SpecialCells(xlLastCell))
Set table = Sheets("Results").ListObjects.Add(xlSrcRange, rng, , xlYes)
table.TableStyle = "TableStyleMedium13"
Run Code Online (Sandbox Code Playgroud)
截至目前,格式设置是从第 10 行到工作表末尾完成的 - 即使在空行中也是如此。但是,我希望只对表格的最后一行数据进行格式化,并且鉴于数据量会有所不同,因此可以动态地执行此操作。我怎样才能做到这一点?
在Google表格数据库中,我拥有一个公式,可以为一系列公司分配参考号。
每个公司应以RET00XX
XX 的形式表示其唯一编号,其中XX代表唯一的公司编号。我希望这些数字是连续的,从1开始,再从+1开始。每当在数据库中插入新公司时,公式都应能够为其赋予参考编号。它还应该能够验证公司是否已存在于数据库中,如果已存在,则可以自动为公司分配公司的唯一参考号,而不用创建新的参考号。
公司名称在B列的单元格中。
这是我建立的公式(第2行中的一个示例):
=ARRAYFORMULA(IF($B2<>"",IF((COUNTIF($B$1:$B1,$B2)>0),INDEX($A$1:$R2,MATCH($B2,$B$1:$B1,0),12),CONCATENATE("RET00",ROW($B2))),""))
Run Code Online (Sandbox Code Playgroud)
采取的步骤是:
COUNTIF
功能,验证公司在先前的任何行中都不存在;INDEX
功能为相应的参考号分配属性;CONCATENATE
和ROW
功能为公司分配新的参考号。尽管存在一些问题,但该公式在很大程度上有效。添加到该数据库的用户习惯于通过在数据库中间插入行来添加条目。这样,由于公式的构建方式,每次发生时公司唯一的参考代码都会更改。我相信部分原因是我使用了ROW
函数。
同样,假设在数据库中间插入了新行,则公式应该能够验证公司是否已经存在,不仅通过遍历所有先前行,而且遍历所有行(如果插入了新行,则公式为仅当公司可能位于新行之后的行中时,才会验证以前的行)。
如何在不参考的情况下在公式中赋予序号ROW
?另外,如何确保电子表格对B列的所有行进行验证,而不只是对插入行之前的行进行验证?
我编写了一个脚本,旨在清除 Google 表格电子表格的内容并复制并粘贴另一张表格的内容。
需要清除的工作表称为“NEW_SHEET”,要复制的工作表称为“数据库”。
出于某种原因,该脚本目前不起作用。当我运行它时没有任何反应。另外,目前,我正在使用.getActiveRange
选择要清除的范围。但是,我希望它是 A 到 AC 列,并且只到最后一行有数据。
这是我正在使用的代码:
function importDB() {
//Delete content of New Sheet
var sh1 = SpreadsheetApp.openById('SHEET_ID').getSheetByName('NEW_SHEET')
var range1 = sh1.getActiveRange()
range1.clearContent()
//Copy new database data
var sh = SpreadsheetApp.openById('SHEET_ID').getSheetByName('Database')
var range = sh.getDataRange();
var data = range.getValues();
var ts = SpreadsheetApp.openById('SHEET_ID').getSheetByName('NEW_SHEET')
ts.setValues(data)
}
Run Code Online (Sandbox Code Playgroud) 我有以下Ruby哈希:
hash = {
0 => "
===
@@@
@ @
@ @
@ @
@@@
===",
1 => "
=
@
@
@
@
@
="}
Run Code Online (Sandbox Code Playgroud)
我想在控制台的一行中打印出一些哈希值。为此,我创建了一个数组,其中包含要打印的元素:
test = [hash[0], hash[1]]
Run Code Online (Sandbox Code Playgroud)
要么
test1 = [hash[0], hash[0]]
Run Code Online (Sandbox Code Playgroud)
如果要打印test1
到控制台,结果应为以下内容:
======
@@@@@@
@ @@ @
@ @@ @
@ @@ @
@@@@@@
======
Run Code Online (Sandbox Code Playgroud)
如果我想将`test2打印到控制台,结果应该是:
====
@@@@
@ @@
@ @@
@ @@
@@@@
====
Run Code Online (Sandbox Code Playgroud)
但是,当我使用puts
或时print
,结果始终是一个接一个地打印而不是在同一行中。
我有一个 VBA 宏,用于获取文件中的图像并将其粘贴到 Excel 电子表格中名为“国家概况”的工作表中。我想调整图像大小,使其宽度为 350px,同时保持其纵横比。
这是我写的代码:
Public Sub Macro15()
Dim picname As String
Dim shp As Shape
Dim present As String
Sheets("Country Profile").Activate
Sheets("Country Profile").Select
ActiveSheet.Pictures.Delete
Cells(19, 40).Select 'This is where picture will be inserted (column)
picname = Sheets("REPORT ON").Range("A2").Value 'This is the picture name
Cells(19, 46).Select
Call ActiveSheet.Shapes.AddPicture("C:\Users\" & Environ("UserName") & "\Maps with Cities\" & picname & ".png", _
LockAspectRatio = msoTrue, msoCTrue, Left:=Cells(19, 40).Left, Top:=Cells(19, 46).Top, Width:=350, Height:=-1).Select
End Sub
Run Code Online (Sandbox Code Playgroud)
该代码有效并且图像被插入到所需的文件中。但是,不保持纵横比。我可以做什么来纠正这个问题?