bind()
. bind()
function MyConstructor(data, transport) {
this.data = data;
transport.on('data', ( function () {
alert(this.data);
}).bind(this) );
}
// Mock transport object
var transport = {
on: function(event, callback) {
setTimeout(callback, 1000);
}
};
// called as
var obj = new MyConstructor('foo', transport);
Если вы используете underscore.js
- http://underscorejs.org/#bind
transport.on('data', _.bind(function () {
alert(this.data);
}, this));
function MyConstructor(data, transport) {
var self = this;
this.data = data;
transport.on('data', function() {
alert(self.data);
});
}
function MyConstructor(data, transport) {
this.data = data;
transport.on('data', () => {
alert(this.data);
});
}
Вы пытались сбежать с двойной кавычкой?
= "Maurice ""The Rocket"" Richard"
Я использую функцию для этого (если в книге уже есть VBA).
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
Это из книги Сью Мозера «Программирование Microsoft Outlook». Тогда ваша формула будет:
="Maurice "&Quote("Rocket")&" Richard"
Это похоже на то, что опубликовано Dave DuPlantis .
Использовать chr (34) Код: Joe = "Привет," & amp; Chr (34) & amp; «Джо» & amp; Chr (34) ActiveCell.Value = Joe
Результат: Привет, «joe»
В качестве альтернативы вы можете использовать функцию CHAR
:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
""
Возможно, это просто потому, что у меня есть Mac Excel 2011
– Ivan
4 January 2013 в 02:29
&
с двойной цитатой непосредственно перед или сразу после того, как амперсанд не работал, используя метод двойной двойной кавычки.
– Amos M. Carpenter
24 June 2015 в 07:57
будет работать для макросов с использованием .Formula = "=THEFORMULAFUNCTION("STUFF")"
, так что это будет выглядеть так: будет ли это работать для макросов с использованием .Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
Возвращение пустой или нулевой строки (например, ""
), чтобы сделать ячейку пустой, является обычной практикой в формуле рабочего листа, но воссоздавая эту опцию при вставке формулы через диапазон . Formula ] или Range.FormulaR1C1 в VBA является громоздким из-за необходимости дублирования символов двойной кавычки в указанной строке.
Нативный рабочий лист Функция TEXT может дать тот же результат без использования кавычек.
'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")" '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))" '<~with TEXT(,) instead
На мой взгляд, используя TEXT(,)
вместо ""
, очищает даже простую формулу, подобную той, что указана выше. Преимущества становятся все более значительными при использовании в более сложных формулах, таких как практика добавления пустой строки в VLOOKUP , чтобы избежать возврата нуля в ячейку, когда поиск приводит к ошибке или возвращает пустую строку на no-match с IFERROR .
'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"
Когда TEXT(,)
заменит старый метод ""
доставки пустой строки, вы можете перестать использовать счеты, чтобы определить есть ли у вас правильное число символов кавычек в строке формулы.
="Maurice "&"""TheRocker"""&" Richard"
Есть еще один способ, хотя больше для «Как я могу построить следующую строку в формуле Excel:« Морис »Ракета« Ричард »« чем «Как создать строки, содержащие двойные кавычки в формулах Excel?», что просто используйте две одинарные кавычки:
Слева находится Calibri, отрезанный от листа Excel, а справа - отрезок от окна VBA. По моему мнению, побег, как упоминалось в @YonahW, побеждает «руки вниз», но две одиночные кавычки больше не печатаются, чем два удвоения, и разница в VBA достаточно очевидна без дополнительных нажатий клавиш, хотя, возможно, не заметна в электронной таблице.
Функция VBA
1) .Formula = "=" "THEFORMULAFUNCTION" "& amp; (CHAR (34) & amp;" "STUFF" & amp; CHAR (34)) "
2) .Formula = "THEFORMULAFUNCTION" "STUFF" ""
Первый метод использует vba для записи формулы в ячейке, которая приводит к вычисленному значению:
THEFORMULAFUNCTION "STUFF"
Второй метод использует vba для записи строки в ячейке, которая приводит к значению:
THEFORMULAFUNCTION "STUFF"
Excel Результат / Формула
1) = "THEFORMULAFUNCTION" & amp; CHAR (34) & amp; "STUFF" & CHAR (34))
2) ФУНКЦИОНАЛЬНОСТЬ "STUFF"
Если вам нужно сделать это с помощью JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
Конкатенация "
как отдельная ячейка:
A | B | C | D
1 " | text | " | =CONCATENATE(A1; B1; C1);
D1 displays "text"